使用其他数据帧查找数据帧的相应行值

时间:2014-10-22 13:06:14

标签: r

是否可以在另一个数据帧中找到一个数据帧的相应行。 使用R命令? 之后将结果存储在另一个数据框中。

示例:

     data1 = airquality[1:14,]
     data2 = data.frame(index=data1$Ozone[6:14])

我希望在其他数据框中包含与此2数据帧的相同行相对应的日期。我认为data1的臭氧值就像索引一样。

所以我最终想要得到的是data3中的这类东西:

     index  Month Day
     28         5   6
     23         5   7
     19         5   8
      8         5   9
     NA         5  10
      7         5  11
     16         5  12
     11         5  13
     14         5  14

1 个答案:

答案 0 :(得分:1)

您可以使用%in%运算符:

data3 <- data1[data1$Ozone %in% data2$index, c("Ozone", "Month", "Day")]
data3

   Ozone Month Day
5     NA     5   5
6     28     5   6
7     23     5   7
8     19     5   8
9      8     5   9
10    NA     5  10
11     7     5  11
12    16     5  12
13    11     5  13
14    14     5  14

您的索引示例中有NA。 R将在结果data.frame中选择所有NA。除非您想要选择所有这些,否则请避免在索引中使用它们。

如果你想使用行名,你可以这样做:

data1[!rownames(data1) %in% 1:5, c("Ozone", "Month", "Day")]

   Ozone Month Day
6     28     5   6
7     23     5   7
8     19     5   8
9      8     5   9
10    NA     5  10
11     7     5  11
12    16     5  12
13    11     5  13
14    14     5  14

有关子集化的详细信息,请参阅herethis site也很有用。