根据 R 中另一个 csv 文件中的内容从 csv 文件中提取数据
Subsetting data from a csv file based on contents in another csv file in R
想要从 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")
谢谢。
在 OP 的代码中,%in%
的右侧使用了整个 data.frame 而不是列。代码应该是
subset(dataA, PAN %in% dataD$columnname)
取决于这些 csv 文件的大小,例如,如果它们太大而无法加载到 R 中或加载到 R 中很慢,您可以在命令行上使用 awk
执行此操作,它将是快多了。
awk -F',' 'NR==FNR {arr[]++; next} (( in arr) && ( in arr)) {print [=10=]}' file1 file2
这只会打印结果,但您可以将其写入新的 csv:
awk -F',' 'NR==FNR {arr[]++; next} (( in arr) && ( in arr)) {print [=11=]}' file1 file2 > new.csv
awk; searching file2 by file1供参考。
想要从 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")
谢谢。
在 OP 的代码中,%in%
的右侧使用了整个 data.frame 而不是列。代码应该是
subset(dataA, PAN %in% dataD$columnname)
取决于这些 csv 文件的大小,例如,如果它们太大而无法加载到 R 中或加载到 R 中很慢,您可以在命令行上使用 awk
执行此操作,它将是快多了。
awk -F',' 'NR==FNR {arr[]++; next} (( in arr) && ( in arr)) {print [=10=]}' file1 file2
这只会打印结果,但您可以将其写入新的 csv:
awk -F',' 'NR==FNR {arr[]++; next} (( in arr) && ( in arr)) {print [=11=]}' file1 file2 > new.csv
awk; searching file2 by file1供参考。