我怎样才能在R中连接两个csv文件?

时间:2011-08-25 08:39:24

标签: r csv

我有两个csv文件。

文件一有两列:

DD1 abct
DD2 geate
DD3 watec
DD4 wwwca21
DD5 bate789

文件二有一列:

abct
geate
bate789

我希望得到一个截断文件,以包含与文件二匹配的文件,即

DD1 abct
DD2 geate
DD5 bate789

你能不能让我知道怎么用R?

R的新人。

2 个答案:

答案 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)