我正在处理与其他帖子中所述类似的问题,并尝试调整代码以选择我感兴趣的列并使其适合我的数据文件。
但是,我的问题是生成的文件已经变得比原始文件大,而且我不确定代码是否按照我的预期工作。
当我用 SPSS 打开时,数据集似乎已经进入标题行,然后在第二行没有结束的情况下制作了数百万份副本(我不得不强制停止该过程)。
我注意到指定行的while循环中没有计数器,可能是这种情况吗?我在 R 编程方面的背景非常有限。该文件是 .csv,大小为 4.8GB,包含 329 个变量和数百万行。我只需要保留大约 30 个变量。
这是我使用的代码:
##Open separate connections to hold cursor position
file.in <- file('npidata_20050523-20130707.csv', 'rt')
file.out<- file('Mainoutnpidata.txt', 'wt')
line<-readLines(file.in,n=1)
line.split <-strsplit(line, ',')
##Column picking, only column 1
cat(line.split[[1]][1:11],line.split[[1]][23:25], line.split[[1]][31:33], line.split[[1]][308:311], sep = ",", file = file.out, fill= TRUE)
##Use a loop to read in the rest of the lines
line <-readLines(file.in, n=1)
while (length(line)){
line.split <-strsplit(line, ',')
if (length(line.split[[1]])>1) {
cat(line.split[[1]][1:11],line.split[[1]][23:25], line.split[[1]][31:33], line.split[[1]][308:311],sep = ",", file = file.out, fill= TRUE)
}
}
close(file.in)
close(file.out)