如何阅读csv数据

时间:2014-04-04 17:17:14

标签: r csv

我有一个CSV文件,需要读入R,转置(交换列的行),然后进行处理。

这是文件的形式(不是列实际延伸到2014年):

Year,1970,1971,1972
Variable one,1,2,3
Variable two,11,22,33
Variable three,111,222,333

当我阅读它时,这些年份的前缀是'X'

> rc <- read.csv("file.csv")
> rc
            Year X1970 X1971 X1972
1   Variable one     1     2     3
2   Variable two    11    22    33
3 Variable three   111   222   333

当我转置数据时,所有内容都被视为字符串。

> t(rc)
      [,1]           [,2]           [,3]            
Year  "Variable one" "Variable two" "Variable three"
X1970 "  1"          " 11"          "111"           
X1971 "  2"          " 22"          "222"           
X1972 "  3"          " 33"          "333"   

如果删除csv文件中行的名称,则日期仍然以X为前缀,但转置不会将数据更改为字符串。

那么我该如何正确地做到这一点,以便年份是数字,而转置不会创建字符串。

1 个答案:

答案 0 :(得分:5)

只需使用check.names = FALSE语句添加read.csv(但这不是一个好主意,因为在这种情况下,您最终会遇到语法无效的名称):

X <- read.csv(text = "Year,1970,1971,1972
 Variable one,1,2,3
 Variable two,11,22,33
 Variable three,111,222,333", check.names = FALSE)
X
#             Year 1970 1971 1972
# 1   Variable one    1    2    3
# 2   Variable two   11   22   33
# 3 Variable three  111  222  333

关于转置数据,首先删除字符串值,然后将它们重新引入为列名:

tX <- t(X[-1])
colnames(tX) <- X[[1]]
tX
#       Variable one  Variable two  Variable three
# 1970             1            11             111
# 1971             2            22             222
# 1972             3            33             333