繁体   English   中英

在R中满足条件时向数据框添加值

[英]Add values to dataframe when condition met in R

我有一个这样的数据框:

ID1   ID2   Position  Grade   Day
234   756      2        87     27
245   486      4        66     26
321   275      1        54     20
768   656      6        51     7
421   181      1        90     14
237   952      8        68     23
237   553      4        32     30

而且我有另一个像这样的数据框:

ID1   ID2   Day  Count
234   756    2     3 
245   486    2     1
209   706    2     1
124   554    2     2
237   553    2     4

我需要将计数添加到ID1,ID2和Day匹配的第一个数据帧中。 但是,我还需要它,以便如果不匹配(在第一个数据帧中ID1,ID2和Day的集合的第二个数据帧中没有计数),那么该位置将置零。 因此,最终数据帧将类似于:

ID1   ID2   Position  Grade   Day   Count
234   756      2        87     27     3
245   486      4        66     26     1
321   275      1        54     20     0
768   656      6        51     7      0
421   181      1        90     14     0
237   952      8        68     23     0
237   553      4        32     30     4

这很有用

> # First, merge df1 and df2
> df3 <- merge(df1, df2, by=c("ID1", "ID2"), all.x=TRUE)
> # Replace NA with 0's
> transform(df3[, -6], Count=ifelse(is.na(Count), 0, Count))
  ID1 ID2 Position Grade Day.x Count
1 234 756        2    87    27     3
2 237 553        4    32    30     4
3 237 952        8    68    23     0
4 245 486        4    66    26     1
5 321 275        1    54    20     0
6 421 181        1    90    14     0
7 768 656        6    51     7     0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM