虽然 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。