我正在尝试使用R中的一个非常大的数据集。它目前以CSV格式保存,我使用read.csv将其导入。不幸的是,其中一个fields是Address,自然包含逗号,R显然是将它们作为分隔符读取。一个正面,地址中的所有逗号后跟空格。
所以这就是问题所在。无论如何告诉read.csv","不是分隔符,而是","是什么?
如果没有,无论如何我是否可以将一个csv导入R作为一个长字符串然后进行查找和替换?或者,最后一种情况,您是否可以指向一个体面的文本编辑器,我可以在我的工作笔记本电脑上安装它?
谢谢,詹姆斯
答案 0 :(得分:1)
我的第一次尝试是使用引号或|
分隔符重新创建文件。
如果这不是一个选项,我会尝试使用readLines
和gsub
,
假设我可以将所有这些字符串读入内存。
library(dplyr)
File <-
paste("Name,Address,Occupation,Hair Color",
"Mary,123 Lamb St, Ruralsville, KY,Shepherd,Blonde",
"Jim,17 Elm St., Urban Center, TN,Butler,Brown",
sep = "\n")
write(File, tmp)
DF <- readLines(tmp) %>%
gsub(", ", "_;_", .) %>%
textConnection() %>%
read.csv() %>%
mutate(Address = gsub("_;_", ", ", Address))
unlink(tmp)
如果文件太大而无法读入内存,我可能会尝试编写循环 一次读取100,000行,在每个段上执行上述代码,并且 将其写入新的CSV。新的CSV将从R中正确引用并应该读入 相当不错。
(我还没有尝试过编写这个循环。我希望你的缘故不会发生这种情况。)