【发布时间】:2019-04-05 09:12:54
【问题描述】:
我正在尝试使用保存为 .csv 文件但实际上是的文件;划定的。小数点是逗号。 行示例:
SAA1;6,022367813;10,9403136;5,807354922;3,169925001;3,807354922;8,636624621;5,247927513;5,459431619;9,09011242;4,247927543;4,247927513;4, ,247927513; 4,584962501; 4,584962501; 11,17492568; 4,754887502; 6,85798095; 7,409390936; 7,499390936; 7,499845887; 8,224001674; 10,19967234; 9,6,638435914; 4,700439714; 6,14974712; 2,807354922 ;0;7,348728154;4,700439718;6,820178962;4,700439718;6,044394119;1,584962501;6,044394119;6,375039431;3,807354922;9,0879862841;5648;5648 ;8,330916878;6,62935662;5,169925001;6,442943496;2,321928095;8,312882955;9,240791332;2,807354922;9,06608919;6,5391581861;5,64658, ,700439718;6,108524457;7,539158811;6,658211483;8,982993575;5,285402219;8,744833837
我需要将这些数据读入 R,然后将其作为小数点为“。”的数字使用。
这是我尝试过的:
read.csv2("filename.csv", row.names=1, sep=";",dec=",")
这几乎奏效了。大多数数字都用句点正确读入。但是,某些列中的所有数字仍然用逗号分隔。我试图解决这个问题:
temp<-sub(",", ".", data)
但是,这并不完全奏效。它截断了几个数字并完全破坏了其他数字。我不知道为什么。
我也试过用 Sublime 文本打开文件。我找到并用句号替换了所有逗号。这再次适用于大多数数据,但有几个数字再次损坏。
我还尝试在不更改逗号分隔性质的情况下读取文件,将其写入句点分隔然后再次读取。
temp<-read.csv2("filename.csv", row.names=1, sep=";")
write.csv2(temp, "filename_edited", sep = ";", dec=".", row.names = TRUE, col.names = TRUE)
temp2 <- read.csv2("filename_edited", sep=";", row.names=1)
这也不起作用。 (我并不惊讶,我越来越绝望了。)
我做错了什么?我该如何解决?
【问题讨论】:
-
我在读取您的示例文件时没有问题:read.csv2("filename.csv", header = F, sep = ";", dec = ",") 或图书馆(读者); read_csv2("filename.csv", col_names = F) 并且输出被正确转换。如果这对您不起作用,我认为您需要共享更多数据,以便重现您的问题。
-
您也可以尝试使用
readrpackage:library(readr); read_csv2("filename.csv")读取文件,看看是否能解决问题。