背景:
第一表:
ID | 待辦的 | 新的 | 得到正式認可的 |
---|---|---|---|
001 | 不適用 | 不適用 | 2021-05-20 |
002 | 不適用 | 不適用 | 2021-05-20 |
003 | 不適用 | 不適用 | 2021-05-20 |
004 | 不適用 | 不適用 | 2021-05-20 |
第二表:
ID | 日期 |
---|---|
001 | 2021-04-30 |
002 | 2021-04-30 |
003 | 2021-04-30 |
004 | 2021-04-30 |
我想要什么:我想撰寫一個嵌套的 for 回圈,其中 R 能夠在表 2 中找到最小的日期值并將其附加到表 1 中的變數“New”。
我當前的代碼如下所示:
for(i in 1:nrow(merged_final)){
for (j in 1:nrow(merged_final)){
if(is.na(merged_final$New[j]))
merged_final[merged_final$New[i] == min(query1.1$Coach340BClaimsID == query1.1$Coach340BClaimsID[j])]
}
}
這似乎不起作用。任何提示將不勝感激。
uj5u.com熱心網友回復:
您有兩個常見的操作:(a)按組查找最小值,以及(b)連接兩個資料集。你不需要回圈,更不用說嵌套回圈了。
與dplyr
:
library(dplyr)
# find min vals by group
min_val = data2 %>%
group_by(ID) %>%
slice(which.min(date)) %>%
rename(New2 = date) ## rename the column to be ready to merge
# join to original data
data1 = data1 %>%
left_join(min_val, by = "ID") %>%
mutate(New = coalesce(New, New2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491276.html
上一篇:將日期的日期更改為特定日期