R软件,read.csv,多个分隔符



有人知道用多个分隔符读取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(as.numeric(x)))})
df <- do.call(rbind.fill, z)
df

一个选项是使用Excel。在导入阶段(向导步骤2(,您可以选择多个分隔符(分隔符(。逗号和空格是默认选项之一,但您也可以选择其他字符。

然后使用许多用户提供的包中的一个导入excel文件,例如readxl,或者另存为文本并使用read.csv/read.table

最新更新