根据R中另一个csv文件中的内容从csv文件中对数据进行子集

时间:2015-10-30 08:10:30

标签: r subset

想要从csv文件中获取信息 - mf.csv基于存储在df.csv中的数据列表(其中有一列名为PAN)

dataA <- read.csv("C://Users//mf.csv")

dataD <- read.csv("C://Users//df.csv")

dataG <- subset(dataA, PAN %in% dataD)

write.csv(dataG,"C://Users//result.csv")

感谢。

2 个答案:

答案 0 :(得分:0)

在OP的代码中,整个data.frame用于%in%的rhs而不是列。代码应该是

subset(dataA, PAN %in% dataD$columnname)

答案 1 :(得分:0)

根据这些csv文件的大小,例如,如果它们太大而无法加载到R中或者在R中加载速度很慢,则可以在awk的命令行上执行此操作,它会更快

awk -F',' 'NR==FNR {arr[$1]++; next} (($1 in arr) && ($2 in arr)) {print $0}' file1 file2

这只会打印结果,但您可以将其写入新的csv:

 awk -F',' 'NR==FNR {arr[$1]++; next} (($1 in arr) && ($2 in arr)) {print $0}' file1 file2 > new.csv

awk; searching file2 by file1供参考。