雖然 tibble 可以有行名稱(例如,從常規數據幀轉換時),但在使用 [
運算符進行子集化時,它們會被刪除。嘗試將非 NULL
行名稱分配給 tibble 時,將引發警告。一般來說,最好避免行名稱,因為它們本質上是一個字符列,其語義與其他列不同。
這些函數允許您檢測 DataFrame 是否具有行名稱(has_rownames()
),刪除它們(remove_rownames()
),或在顯式列(rownames_to_column()
和column_to_rownames()
)之間轉換它們back-and-forth。還包括 rowid_to_column()
,它在從 1 開始的升序連續行 id 的數據幀的開頭添加一列。請注意,這將刪除任何現有的行名稱。
用法
has_rownames(.data)
remove_rownames(.data)
rownames_to_column(.data, var = "rowname")
rowid_to_column(.data, var = "rowid")
column_to_rownames(.data, var = "rowname")
例子
# Detect row names ----------------------------------------------------
has_rownames(mtcars)
#> [1] TRUE
has_rownames(trees)
#> [1] FALSE
# Remove row names ----------------------------------------------------
remove_rownames(mtcars) %>% has_rownames()
#> [1] FALSE
# Convert between row names and column --------------------------------
mtcars_tbl <- rownames_to_column(mtcars, var = "car") %>% as_tibble()
mtcars_tbl
#> # A tibble: 32 × 12
#> car mpg cyl disp hp drat wt qsec vs am gear carb
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Mazd… 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 Mazd… 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 Dats… 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 Horn… 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 Horn… 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 Vali… 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 Dust… 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 Merc… 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 Merc… 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 Merc… 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # … with 22 more rows
column_to_rownames(mtcars_tbl, var = "car") %>% head()
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#> Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
# Adding rowid as a column --------------------------------------------
rowid_to_column(trees) %>% head()
#> rowid Girth Height Volume
#> 1 1 8.3 70 10.3
#> 2 2 8.6 65 10.3
#> 3 3 8.8 63 10.2
#> 4 4 10.5 72 16.4
#> 5 5 10.7 81 18.8
#> 6 6 10.8 83 19.7
相關用法
- R tibble tibble 構建 DataFrame 架
- R tibble char 設置字符向量格式
- R tibble frame_matrix 逐行矩陣創建
- R tibble num 設置數值向量的格式
- R tibble enframe 將向量轉換為數據幀,反之亦然
- R tibble add_row 將行添加到 DataFrame
- R tibble as_tibble 將列表、矩陣等強製轉換為 DataFrame
- R tibble subsetting 子集化標題
- R tibble tibble_options 封裝選項
- R tibble add_column 將列添加到 DataFrame
- R tibble lst 建立一個清單
- R tibble formatting 打印小標題
- R tibble new_tibble Tibble 構造函數和驗證器
- R tibble tribble 逐行小標題創建
- R tidyr separate_rows 將折疊的列分成多行
- R tidyr extract 使用正則表達式組將字符列提取為多列
- R tidyr chop 砍伐和砍伐
- R tidyr pivot_longer_spec 使用規範將數據從寬轉為長
- R tidyr unnest_longer 將列表列取消嵌套到行中
- R tidyr uncount “計數” DataFrame
- R tidyr cms_patient_experience 來自醫療保險和醫療補助服務中心的數據
- R tidyr pivot_wider_spec 使用規範將數據從長軸轉向寬軸
- R tidyverse tidyverse_update 更新 tidyverse 軟件包
- R tidyr replace_na 將 NA 替換為指定值
- R tidyr unnest_wider 將列表列取消嵌套到列中
注:本文由純淨天空篩選整理自Kirill Müller等大神的英文原創作品 Tools for working with row names。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。