无法更改数据框列名称

时间:2017-04-15 03:17:18

标签: r

我有以下数据框。

> 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

第一行三行为空,列名为V6V11。我想使用第四行作为列名。我尝试了下面的方法,但它不起作用。

colnames(weather) <- weather[4,]

运行上面的命令后,我的列名变为:

> colnames(weather)
[1] "33"  "26"  "427" "3"   "3"   "3"  

我不知道这些价值来自哪里。如何更新数据框中的列名?

1 个答案:

答案 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,]))