問題:需要填寫同名列中按名稱分組的非NA值的NA。用名稱分組列出的同一列中的日期替換NA
數據:
Name Date
Bob <NA>
Bob 2015-11-01
Bob <NA>
Bob <NA>
Ant <NA>
Ant <NA>
Ant 2015-11-03
Ant <NA>
Ted 2015-11-04
Ted <NA>
Ted <NA>
Ted <NA>
期望的結果:
Name Date Date.Combined
Bob <NA> 2015-11-01
Bob 2015-11-01 2015-11-01
Bob <NA> 2015-11-01
Bob <NA> 2015-11-01
Ant <NA> 2015-11-03
Ant <NA> 2015-11-03
Ant 2015-11-03 2015-11-03
Ant <NA> 2015-11-03
Ted 2015-11-04 2015-11-04
Ted <NA> 2015-11-04
Ted <NA> 2015-11-04
Ted <NA> 2015-11-04
在日期欄的日期不在一個固定的位置,並且是隨機的, (鮑勃[2],螞蟻[3],Ted [1])。他們可能會多次出現在同一個用戶身上,但日期對於該用戶而言始終是相同的。
我的邏輯:
集團按名稱,按非NA
小號取代NA
S IN列日期。
嘗試1
df %>%
group_by(name) %>%
mutate(Date.Combined = !is.na(Date))
然後試圖
df %>%
group_by(name) %>%
mutate(Date.Combined = ifelse(is.na(Date), !is.na(Date), !is.na(Date))
但這些只給了我TRUE
/FALSE
而不是實際日期。
問題1-如何找到列的非NA
值的值,而不是得到TRUE
/FALSE
。
問題2 - replace
是否合適ifelse
?
我能夠使用你的方法,並得到我想要的!雖然我需要將其更改爲 data $ Date <-mapping $ Date [match(data $ Name,mapping $ Name)] – ant