我有以下数据框。
> head(weather)
V6 V7 V8 V9 V10 V11
1
2
3
4 Day Hour Value Unit Duration QC Name
5 1 0 231 \xb5g/m\xb3 1 Hr Valid
6 1 1 239 \xb5g/m\xb3 1 Hr Valid
第一行三行为空,列名为V6
至V11
。我想使用第四行作为列名。我尝试了下面的方法,但它不起作用。
colnames(weather) <- weather[4,]
运行上面的命令后,我的列名变为:
> colnames(weather)
[1] "33" "26" "427" "3" "3" "3"
我不知道这些价值来自哪里。如何更新数据框中的列名?
答案 0 :(得分:1)
错误是由列的类引起的。当它被强制转换为factor
存储模式时,它可能是integer
。通过使用skip
参数
weather <- read.csv("yourfile.csv", skip=4, header=TRUE, stringsAsFactors=FALSE)
如果我们使用OP的方法,那么unlist
行并转换为character
colnames(weather) <- as.character(unlist(weather[4,]))