簡體   English   中英

R 軟件,讀取.csv,多個分隔符

[英]R software, read.csv, multiple separators

有誰知道使用多個分隔符讀取 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 中以這種方式閱讀它的可能方式嗎?

我們可以嘗試使用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

您可以在任何文本編輯器(記事本或類似的東西)中打開文件,並使分隔符在文件中通用。 您可以使用空格替換',' ,反之亦然,使用全部查找和替換並保存文件。

一旦你這樣做了,你可以使用read.csv這個新的分隔符。

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

一種選擇是使用 Excel。 您可以在導入階段(向導步驟 2)選擇多個分隔符(定界符)。 逗號和空格是默認選項之一,但您也可以選擇其他字符。

然后使用許多用戶提供的軟件包之一導入 excel 文件,例如readxl ,或另存為文本並使用read.csv / read.table

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM