在R中将数据框列值转为行名后列名格式异常求助
问题原因与解决方法
原因
R的data.frame()默认会自动规范化列名:
- 列名不能以数字开头,否则自动前缀
X - 列名里的特殊字符(比如
-)会被替换成.
你看到的列名变形就是这个默认规则导致的,和设置行名的操作本身无关。
解决办法
关闭列名自动规范化
创建数据框时加上check.names=FALSE参数,保留原始列名:newdataframe <- data.frame(dataframe, row.names = 1, check.names = FALSE)分步设置行名
先把第一列设为行名,再删掉原第一列,避免触发列名修改:newdataframe <- dataframe rownames(newdataframe) <- newdataframe[, 1] newdataframe <- newdataframe[, -1]用tibble处理(推荐)
tibble默认不修改非标准列名,用专门的函数转行名更省心:library(tibble) newdataframe <- column_to_rownames(dataframe, var = names(dataframe)[1])
内容的提问来源于stack exchange,提问作者Zaman Muhammad Asad
相关产品推荐
相关产品推荐

