我有一个数据框df
。当我打印第一行时,我得到了
> print(df[1,])
V2 V3 V4 V5
A B C D
我想要A,B等作为名字,所以我做
colnames(df) <- df[1,]
然而,当我打印我现在得到的名字时
> print(colnames(df))
[1] "1101" "852" "782" "534"
V2 V3 V4
A B C
col1 48.6 2 0.2
col2 68.7 3.4 0.3
col3 34.2 2.7 0.5
我应该如何设置colnames?
答案 0 :(得分:1)
由于Gregor和nicola已经选择了你的列似乎是因素而colnames()需要一个矢量输入而不是数据帧,请尝试以下方法:
colnames(df) <- as.vector(t(df[1,]))
t()将向量转换为单个列矩阵,as.vector()然后删除第二个维度。
示例:
df <- data.frame(x1 = factor("a"),x2 = factor("b"),x3 = factor("c"),x4 = factor("d"))
colnames(df) <- as.vector(t(df[1,]))
df <- df[-1,] # removes the first row