根据另一个数据框的条件向数据框添加新列

时间:2018-01-11 08:17:31

标签: r dataframe conditional

我无法弄清楚如何根据另一个中的条件向数据框添加新行 例如,我有两个数据帧,一个带有数据(df1),另一个带有与观察相关的条件(df2)。用于标识观察值的列名(id1和id2)在两个数据帧中是不同的,但变量(“a”,“b”...)是相同的。
如果观察“a”(列id2)的结果=“TRUE”或“FALSE”,我希望R检入df2,并在df1中相应地报告新的colum df1 $ idTF中的结果。

df1 <- data.frame(id1 = c("a","b","a","c","b","a","c","a","a","b"), 
mes1 = c(2,3,4,2,3,5,2,3,4,2), mes2 = c(56,33,64,72,83,59,26,37,48,29))

> df1
  id1 mes1 mes2
1   a    2   56
2   b    3   33
3   a    4   64
4   c    2   72
5   b    3   83
6   a    5   59
7   c    2   26
8   a    3   37
9   a    4   48
10  b    2   29

df2 <- data.frame(id2 = c("a","b","c"), result = c("TRUE","FALSE","TRUE"))

> df2
    id2 result
1    a   TRUE
2    b  FALSE
3    c   TRUE

我想根据df2中找到的id的TRUE或FALSE条件为df1(df1 $ idTF)添加一个新列,以便得到类似的内容:

> df1
   id1 mes1 mes2  idTF
1   a    2   56  TRUE
2   b    3   33 FALSE
3   a    4   64  TRUE
4   c    2   72  TRUE
5   b    3   83 FALSE
6   a    5   59  TRUE
7   c    2   26  TRUE
8   a    3   37  TRUE
9   a    4   48  TRUE
10  b    2   29 FALSE

到目前为止,我还没有找到一种方法(嵌套循环?)。 事实上,我的数据库有1700行,而另一个数据帧中有58个不同的条件。

0 个答案:

没有答案