我想根据匹配的数字将行从一个数据帧复制到一个新的数据帧?

时间:2018-03-19 21:35:46

标签: r

new.df <- as.data.frame(match(unique_numbers$ID, MASTERFILE$ID))

我在一个名为MASTERFILE的数据框中有几百万行。它包含一列“ID”,带有一堆整数。我有另一个名为“unique_numbers”的数据框,它有一个类似的整数列“ID”,其中包含数字。

我希望匹配不同数据框中的两个“ID”列,以便在MASTERFILE中匹配的ID将被复制到新数据框“new.df”。

上面的命令似乎有效,但我担心它只能通过每个数字,并且MASTERFILE可能在不同的行中多次写入相同的ID,我认为它不会被接收!

2 个答案:

答案 0 :(得分:0)

很难看到没有例子(欣赏其数百万行),即使样本数据也会很好。

这可能有用吗?

T

或根据您的具体情况:

# dummy data different ID lengths
unique_numbers <- rep(1:1000,each=10)
master_id <- rep(1:2000,each=20)
# subset the ones that match
new.df <- subset(master_id , master_id %in% unique_numbers)

答案 1 :(得分:0)

您可以使用%in%

new.df <- MASTERFILE[MASTERFILE$ID %in% unique_numbers$ID, ];

或者,如果您希望new.df仅包含ID列:

new.df <- MASTERFILE[MASTERFILE$ID %in% unique_numbers$ID, "ID"];