将csv导入R时拆分行
我有一个大的csv文件,其中随机行以以下字符串结尾:/\r/。这之后的下一行应该是前一行的延续,但它将被视为新行。应该应用什么函数来修复此问题?到目前为止,我已经通过将csv作为字符串向量导入到R来定位损坏的行,也就是说,我使用了文件中没有的分隔符,以便R将整行作为一列读取。现在,我想将以上述字符串结尾的行和它后面的行粘贴在一起 示例如下:将csv导入R时拆分行,r,csv,import,R,Csv,Import,我有一个大的csv文件,其中随机行以以下字符串结尾:/\r/。这之后的下一行应该是前一行的延续,但它将被视为新行。应该应用什么函数来修复此问题?到目前为止,我已经通过将csv作为字符串向量导入到R来定位损坏的行,也就是说,我使用了文件中没有的分隔符,以便R将整行作为一列读取。现在,我想将以上述字符串结尾的行和它后面的行粘贴在一起 示例如下: "CLSL;2017-01-09;PA930082402;23;10986450" "CLNA;2016-09-05 /\r/" ";650963783;1
"CLSL;2017-01-09;PA930082402;23;10986450"
"CLNA;2016-09-05 /\r/"
";650963783;1;60010670"
我希望它看起来像这样:
"CLSL;2017-01-09;PA930082402;23;10986450"
"CLNA;2016-09-05;650963783;1;60010670"
正确的解决方案可能是在csv来源的任何数据库中的值中添加引号,但除此之外,这是将现有的字符向量组合到data.frame中的一种方法
tt <- c("CLSL;2017-01-09;PA930082402;23;10986450",
"CLNA;2016-09-05 /\r/", ";650963783;1;60010670",
"CLSL;2017-01-09;PA930082402;23;10986450",
"CLNA;2016-09-05 /\r/", ";650963783;1;60010670")
tt <- sub(" /\r/\n", "", paste0(tt, "\n"))
tt <- paste(tt, collapse="")
read.csv2(text=tt, header=FALSE)
# V1 V2 V3 V4 V5
# 1 CLSL 2017-01-09 PA930082402 23 10986450
# 2 CLNA 2016-09-05 650963783 1 60010670
# 3 CLSL 2017-01-09 PA930082402 23 10986450
# 4 CLNA 2016-09-05 650963783 1 60010670
tt希望这有帮助!
样本数据:
test.csv
包含
CLSL;2017-01-09;PA930082402;23;10986450
CLNA;2016-09-05 /\r/
;650963783;1;60010670
那是\r
一个文本,还是你已经格式化的回车的标记?我没有格式化任何东西。我在使用fread导入时遇到了EOF错误,因此我导入了文件,正如我在上面所写的,作为一个列中的一个整体rów。文件太大,无法手动修复这些错误,例如在记事本中
> txt
[1] "CLSL;2017-01-09;PA930082402;23;10986450" "CLNA;2016-09-05;650963783;1;60010670"
CLSL;2017-01-09;PA930082402;23;10986450
CLNA;2016-09-05 /\r/
;650963783;1;60010670