R 如何读取csv数据

R 如何读取csv数据,r,csv,R,Csv,我有一个CSV文件,需要读入R,转换(将行交换为列),然后进行处理 以下是文件的格式(并非列实际扩展到2014年): 当我读到它时,年份的前缀是“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 2

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

以下是文件的格式(并非列实际扩展到2014年):

当我读到它时,年份的前缀是“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
如果删除csv文件中行的名称,则日期仍以X作为前缀,但转置不会将数据更改为字符串


那么我如何正确地做到这一点,以使年份是数字的,并且转置不会产生字符串。

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


X可能会帮助你。@WilliamMorris,它并没有“消失”。您的“year”变量成为使用
t()
时产生的
矩阵的行名
row.names
没有“name”(除“row.names”:-)之外)。您说过使用check.names=FALSE会导致语法无效的名称。有没有更好的方法来获得最终结果?@WilliamMorris,你想要一个
data.frame
还是
matrix
?您可以研究
melt
+
dcast
方法。对于语法无效的名称,需要记住的主要一点是,有时您必须使用反勾号(`)或其他引号来引用它们。我真的想要一个框架,因此我最终将转置的数据保存到csv,编辑文件并重新加载。我敢肯定,这是完全错误的方法,但它完成了任务。谢谢你的帮助:-)
> 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"   
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