我是R.的新手。我有更改数据框列名的代码。但它不起作用
df<-data.frame(a=c("a","b","c"),b=c(2,4,3))
temp<-data.frame()
nam<-df[1]
i<-1
while(i<=nrow(df))
{
temp[1,i]<-df[i,2]
i<-i+1
}
colnames(temp)<-nam
预期输出
>temp
a b c
2 4 3
答案 0 :(得分:1)
您可以使用unlist
将单列数据框nam
转换为矢量:
colnames(temp) <- unlist(nam)
# a b c
# 1 2 4 3
更好的方法是在创建[[
时使用[
代替nam
。这将创建一个向量,您不需要unlist
:
nam <- df[[1]]
colnames(temp) <- nam
顺便说一下:您可以更轻松地创建基于df
的新数据框(无循环):
setNames(as.data.frame(t(df[[2]])), df[[1]])
# a b c
# 1 2 4 3
答案 1 :(得分:1)
colnames(temp) = t(nam)
或
names(temp) = t(nam)
答案 2 :(得分:0)
您可以使用
更改列名称colnames(temp) <- c("a", "b", "c")
行名称类似
rownames(temp) <- c(2,4,5)