我试图通过R中的第一列命名我的行名。但错误invalid 'row.names' length
存在。
DF
x1 A B
1 a 2 1
2 b 4 2
预期产出
A B
a 2 1
b 4 2
我的代码
df1 <- df[, -1] #remove the first column x1 and create a new df->df1
rownames(df1) <- df[, 1] #add the row names by the first column of df
错误
Error in `row.names<-.data.frame`(`*tmp*`, value = value) : invalid 'row.names' length
谢谢!
答案 0 :(得分:1)
要完成第一个答案,我还可以建议:
library(magrittr)
df %>% data.frame %>% set_rownames(.$x1) %>% select(-x1)
或
library(tibble)
data.frame(column_to_rownames(df, var = "x1"))
最后,要了解为什么初始data.frame在设置row.names时出错,因为它是子集化的。你会发现这不是一个真正的载体:
dim(df[, 1])
#### [1] 2 1
这是由于您的初始data.frame的tibble格式的特殊性。 感谢@thelatemail的帮助。