簡體   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