在R中修改data.table表格左侧行标签为自定义名称问题咨询
问题原因
data.table 为了优化性能,默认不启用原生行名(rownames)特性,你使用base R的rownames()函数赋值只是添加了附加属性,data.table默认打印时不会读取该属性,只会展示自带的整数行号,所以看不到修改效果。另外你之前传入的自定义名称向量长度为7,而你的表只有5行,长度不匹配也会导致赋值失败。
解决方案
方案1:添加行标签列(官方推荐)
这是data.table官方建议的用法,自定义标签作为普通列存储,后续所有数据操作都不会丢失标签:
# 给表添加自定义行标签列 Table[, row_label := c("Name1","Name2","Name3","Name4","Name5")] # 将标签列调整到最左侧,符合你要的展示效果 setcolorder(Table, "row_label") # 查看结果 Table
方案2:强制启用rownames展示(仅适合临时打印)
如果你只是需要打印时显示传统行名效果,可以在打印时指定参数:
# 先正确赋值行名,注意长度要和表的行数一致 rownames(Table) <- c("Name1","Name2","Name3","Name4","Name5") # 打印时开启rownames显示 print(Table, rownames = TRUE)
打印输出的效果完全符合你给出的示例格式。该方案的行名是附加属性,做数据筛选、合并等修改操作后很容易失效,仅适合临时打印查看用。
内容的提问来源于stack exchange,提问作者Strovic
相关产品推荐
相关产品推荐

