我想排成一行并使用它来设置下面的大学名称示例
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,]
是一个数据帧
答案 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)