我有两个csv文件。
文件一有两列:
DD1 abct
DD2 geate
DD3 watec
DD4 wwwca21
DD5 bate789
文件二有一列:
abct
geate
bate789
我希望得到一个截断文件,以包含与文件二匹配的文件,即
DD1 abct
DD2 geate
DD5 bate789
你能不能让我知道怎么用R?
R的新人。
答案 0 :(得分:7)
首先,使用read.table
:
file1 <- read.table("file1.csv", col.names=c("FOO", "BAR"))
file2 <- read.table("file2.csv", col.names=c("BAR"))
然后合并它们:
merged <- merge(file1, file2)
并写下结果:
write.table(merged, "merged.csv")
答案 1 :(得分:0)
这是通过%in%来实现的。这将是完全在R内的最快方式。
读入文件
datf1 <- read.table("file1.csv") #two column file
datf2 <- read.table("file2.csv") #one column file
选择你想要的行...%in%生成一个逻辑向量,它是第一个参数的长度,当一个项目在两个参数中时为TRUE,否则为FALSE。
datf1 <- datf1[datf1[,2] %in% datf2[,1],]
写出来......我从file1更改了文件名,因为你真的不应该覆盖原始数据并创建一个新文件。
write.table(datf1, "file3.csv", sep = ',', row.names = FALSE, quote = FALSE)