按值集更改数据框列名称

时间:2014-01-29 18:19:04

标签: r dataframe

我是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

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)