繁体   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