如何读取带有大量逗号的变量“评论”的 CSV?
Posted
技术标签:
【中文标题】如何读取带有大量逗号的变量“评论”的 CSV?【英文标题】:How can I read a CSV with a variable "comments" that's plenty of commas? 【发布时间】:2016-04-07 19:38:22 【问题描述】:我正在尝试从 Airbnb 页面 http://insideairbnb.com/get-the-data.html 读取巴塞罗那的 .csv 文件详细评论数据。
但问题是,有一个专门用于人们的 cmets 的变量,而且它有很多逗号,所以当我尝试读取 .csv 时,它完全被扭曲了。我会很感激一些帮助!
非常感谢!
【问题讨论】:
read.csv('reviews.csv')
对我来说工作得很好,你实际使用了什么代码? cmets 用引号引起来,因此其中的逗号无关紧要
【参考方案1】:
您可以通过 sep2 参数使用 data.table 包中的 fread()。
来自文档:
sep2:列内的分隔符。
我在阿姆斯特丹数据上进行了尝试,效果很好。它会引发警告,但这只是由于 data.table 开发人员对 fread 的编程方式造成的。
DT = fread(".../location/reviews.csv", sep2=",")
nrow(DT) #returns 163351 (which seems to be the correct number)
head(DT$comments,1)
返回:
[1] “房间虽小但很舒适。这个地方很干净,但床单本来可以更干净的。公寓装饰精美,距离市中心仅 20 分钟(步行),因此非常舒适对我们来说很方便。然而,我们在其中一个晚上有一个非常不愉快的经历,因为他们决定在星期四晚上举办一个派对,一直持续到早上 5:30。墙壁很薄,我们可以听到他们的音乐和他们的谈话整夜。人们也整夜吸烟,所以香烟的味道对我们来说是难以忍受的,因为我们不是吸烟者,而且我们房间里的气味很浓。Cedaria 非常有帮助,可以提前为我们提供有关城市景点的提示,但如果我们知道我们会有这种体验,我们就会呆在其他地方。”
仅供参考,fread 和 data.table 非常快。我喜欢使用那个包。
【讨论】:
非常感谢!它完美地工作!我会记住这个包,它真的很有用! 我认为sep2
还没有实现,是吗?
我不认为它是以文档描述的方式实现的。它不返回一列字符串列表。我只知道我以前曾将它用于这些目的,而且效果很好。以上是关于如何读取带有大量逗号的变量“评论”的 CSV?的主要内容,如果未能解决你的问题,请参考以下文章