基于R中另一个csv文件中的内容对csv文件中的数据进行子集设置
希望根据df.csv中存储的数据列表(其中有一列名为PAN)从csv文件mf.csv中获取信息基于R中另一个csv文件中的内容对csv文件中的数据进行子集设置,r,subset,R,Subset,希望根据df.csv中存储的数据列表(其中有一列名为PAN)从csv文件mf.csv中获取信息 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") dataA在OP的代码中,在%中%的rhs上使用了整个data
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")
dataA在OP的代码中,在%
中%的rhs上使用了整个data.frame,而不是列。代码应该是
subset(dataA, PAN %in% dataD$columnname)
根据这些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
作为参考。我认为您的子集
代码应该是子集(dataA,PAN%in%dataD$columnname)
因为dataD
是一个data.frame
。你能提供一个小的可复制的例子和预期的输出(如果上面不起作用的话)。嘿,thanx..它起作用了。