有人知道在R中使用多个分隔符读取csv文件的方法吗?
a<-read.csv("C:/Users/User/Desktop/file.csv", sep=",", header=FALSE)
这里,我有以下数据集(txt / csv文件),用逗号和空格分隔:
5.006,84.698
4.604,87.725 7.250,88.392
6.668,91.556
5.927,95.440
4.953,99.695 7.387,100.489
6.466,104.447
5.599,107.548
4.053,111.411 7.440,112.892
6.096,116.417
4.805,119.031 7.546,120.671
6.149,123.793
4.307,127.201 7.461,129.974
5.493,132.853 7.641,135.393
而且我希望将其读取为具有四列的表,如下所示:
72 5.006 84.698 NA NA
73 4.604 87.725 7.250 88.392
74 6.668 91.556 NA NA
75 5.927 95.440 NA NA
76 4.953 99.695 7.387 100.489
77 6.466 104.447 NA NA
78 5.599 107.548 NA NA
79 4.053 111.411 7.440 112.892
80 6.096 116.417 NA NA
81 4.805 119.031 7.546 120.671
82 6.149 123.793 NA NA
83 4.307 127.201 7.461 129.974
84 5.493 132.853 7.641 135.393
您知道在R中以这种方式阅读它的可能方法吗?
您可以在任何文本编辑器(记事本或类似工具)中打开文件,并使分隔符在文件中通用。您可以使用查找和全部替换并保存文件来用空格替换','
,反之亦然。
一旦完成,就可以在新的分隔符中使用read.csv
。
a <- read.csv("C:/Users/User/Desktop/file.csv", sep= " ", header=FALSE, fill = TRUE)
我们可以尝试使用readLines()
将每一行读取为字符串。然后,我们可以拆分多个分隔符并汇总为一个数据帧。
file <- "C:/Users/User/Desktop/file.csv"
txt <- readLines(file, sep = ""))
y <- strsplit(txt, "[, ]+")
z <- lapply(y,function(x){as.data.frame(t(x),stringsAsFactors=FALSE)})
df <- do.call(rbind.fill, z)
df