簡體   English   中英

R 在列中用逗號讀取 csv

[英]R read csv with comma in column

2020-5-14 更新

這里使用不同但相似的數據集,我發現read_csv似乎工作正常。 不過,我還沒有嘗試過使用原始數據。

雖然回復沒有幫助解決問題,因為我的問題不正確,但單的回復最符合我發布的原始問題,所以我接受了他的回答。

2020-5-12 更新

我認為我原來的問題是不正確的。 就像評論中提到的那樣,引用了數據。 雖然更改分隔符使 R 中的 11582 行看起來與 excel 中的 11583 行相同,但這並不意味着它是“正確的”。 可能是因為編碼不當什么的,換行不正確,導致部分列錯位。 如果我用 notepad++ 打開數據,excel 中第 11583 行的實例位於第 11596 行。


原始問題

我正在嘗試從listings.csv中的這個數據集中讀取 Listings.csv 到 R 中。 我下載了文件並編寫了代碼read.csv('listing.csv') 第一列,列id ,應該是數字。 但是,它顯示:

listing$id[1:10]
 [1] 2015  2695  3176  3309  7071  9991  14325 16401 16644 17409
13129 Levels: Ole Berl穩n!,16736423,Nerea,Mitte,Parkviertel,52.55554132116211,13.340658248460871,Entire home/apt,36,6,3,2018-01-26,0.16,1,279\n17312576,Great 2 floor apartment near Friederich Str MITTE,116829651,Selin,Mitte,Alexanderplatz,52.52349354926847,13.391003496971203,Entire home/apt,170,3,31,2018-10-13,1.63,1,92\n17316675,80簡 m of charm in 3 rooms with office space,116862833,Jon,Neuk繹lln,Schillerpromenade,52.47499080234379,13.427509313575928...

我認為這是因為第二列中有逗號的值。 例如,使用 MiCrosoft excel 打開文件,我可以看到第二列中的一個值是Ole,Ole... 在此處輸入圖像描述

當某些值包含逗號時,如何將 csv 文件正確讀取到 R 中?

由於您可以訪問 Excel 中的數據,因此您可以在 Excel 中使用逗號 (,) 以外的分隔符“另存為”。 首先 go 在控制面板->區域和語言->附加設置中,可以更改“列表分隔符”。 除逗號外,最常見的是 pipe 符號 (|)。 在 R 中,當您 read_csv 時,將分隔符指定為“|”。

你可以試試這個?

lsitings <- read.csv("listings.csv", stringsAsFactors = FALSE)

Listings$name <- gsub(",","", Listings$name) - 這將刪除 Col name 中的逗號

如果您不需要第二列中的信息,那么您可以在導入 R 之前將其刪除(在 Excel 中)。 調用scanread.csv function 也可以使用colClasses參數省略不需要的列。 但是,來自data.table package 的fread function 使用drop參數可以更簡單地執行此操作:

library(data.table)
listings <- fread("listings.csv", drop=2)

如果您確實需要該列中的信息,則需要其他方法(請參閱其他解決方案)。

暫無
暫無

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

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