r - 导入地址文本文件

标签 r import read.csv

我有一个包含几百万行的文本文件。每行应该有 10 个变量。它是逗号分隔的,但每隔一段时间变量中间就会有一个逗号(例如:第 3 行,“BLDG #5,#104”应该是一个变量,但是当我使用 read.import 导入时) csv() 它把一切都搞乱了)。这是一个例子:

1,09/29/1951,F,N,22 MAIN STREET AVE,APT 3,SEATTLE,WA,98102-3053,00920670025
2,09/28/1950,F,N,13354 A STREET,APT 2,BURLINGTON,VT,10101,02510070025
3,10/18/1949,M,N,600 CENTRE STREET,BLDG #5,#104,SPRINGFIELD,IL,01010,02141650025 
4,10/18/1955,M,N,5 KELLY AVENUE,,CITY,XI,10101,02141650025

关于如何最好地导入这些数据有什么建议吗?

最佳答案

为什么不直接使用 read.csv 对您有利的功能呢?

dat <- read.csv(text="1,09/29/1951,F,N,22 MAIN STREET AVE,APT 3,SEATTLE,WA,98102-3053,00920670025
2,09/28/1950,F,N,13354 A STREET,APT 2,BURLINGTON,VT,10101,02510070025
3,10/18/1949,M,N,600 CENTRE STREET,BLDG #5,#104,SPRINGFIELD,IL,01010,02141650025 
4,10/18/1955,M,N,5 KELLY AVENUE,,CITY,XI,10101,02141650025", 
           header=FALSE, stringsAsFactors=FALSE, comment.char="", fill=TRUE)

for (i in 1:nrow(dat)) {
  if (is.na(dat[i, "V11"])) {
    dat[i, 8:11] <- dat[i, 7:10]
    dat[i, "V7"] <- NA
  }
}

dat

##   V1         V2 V3 V4                 V5      V6   V7          V8 V9        V10        V11
## 1  1 09/29/1951  F  N 22 MAIN STREET AVE   APT 3 <NA>     SEATTLE WA 98102-3053  920670025
## 2  2 09/28/1950  F  N     13354 A STREET   APT 2 <NA>  BURLINGTON VT      10101 2510070025
## 3  3 10/18/1949  M  N  600 CENTRE STREET BLDG #5 #104 SPRINGFIELD IL       1010 2141650025
## 4  4 10/18/1955  M  N     5 KELLY AVENUE         <NA>        CITY XI      10101 2141650025

如果您想组合 V6 + V7 那么这是完全可行的。

使用 data.table 天赋来完成此操作会更加高效(即,如果有人发布 fread + 纯 data.table 解决方案应该得到“答案”勾选。

关于r - 导入地址文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491113/

相关文章:

r - 使用 pch= 参数绘制不同的形状

ios - 如何将谷歌地图路线导入 Sygic iOS App?

python - 在 Django 中找不到 Csv 文件

r - read.csv 中的多字节字符串无效

读取多个.txt文件并在R中添加标识文件名的新列

r - 寻找替换列表中字符向量元素的方法

mysql - 在 SQL 表中动态插入 R 输出

在数据框上随机选择唯一行

android - 无法将库项目导入到 Android Studio 项目中

c++ - CLion 不支持 CSV 文件?