使用行作为别名

时间:2018-07-26 16:22:26

标签: r

我想排成一行并使用它来设置下面的大学名称示例

df1a = data.frame(Customer = c("A", "a",1:8),  Product = c("B", "b",11:18))
colnames(df1a)<-df1a[2,]

预期产量

   a  b
1  A  B
2  a  b
3  1 11
4  2 12
5  3 13
6  4 14
7  5 15
8  6 16
9  7 17
10 8 18

我认为问题在于df1a[2,]是一个数据帧

2 个答案:

答案 0 :(得分:4)

这里的列是factor类,在stringsAsFactors = TRUE调用中默认为data.frame。因此,更改后的值是factor的整数存储值,而不是实际值

df1a <- data.frame(Customer = c("A", "a",1:8), 
      Product = c("B", "b",11:18), stringsAsFactors = FALSE)

然后进行分配

names(df1a) <- unlist(df1a[2,])

或者如@Ryan所述,不需要unlist

names(df1a) <- df1a[2,]

答案 1 :(得分:2)

您可以在不生成新数据的情况下更改名称。

names(df1a) <- lapply(df1a[2,], as.character)