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