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

问题描述 投票:1回答:2

有人知道在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中以这种方式阅读它的可能方法吗?

r csv read.csv
2个回答
0
投票

您可以在任何文本编辑器(记事本或类似工具)中打开文件,并使分隔符在文件中通用。您可以使用查找和全部替换并保存文件来用空格替换',',反之亦然。

一旦完成,就可以在新的分隔符中使用read.csv

a <- read.csv("C:/Users/User/Desktop/file.csv", sep= " ", header=FALSE, fill = TRUE)

0
投票

我们可以尝试使用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
© www.soinside.com 2019 - 2024. All rights reserved.