2017-04-15 59 views
2

我有下面的数据框。无法更改数据帧列名

> 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

错误是由于列的类。它可能是factor,当它被胁迫时存储模式。这可以在其根部用skip参数读数被修正

weather <- read.csv("yourfile.csv", skip=4, header=TRUE, stringsAsFactors=FALSE) 

如果我们使用的是OP的方法,那么unlist行并转换为character

colnames(weather) <- as.character(unlist(weather[4,]))