[英]Looping over data frames in a list
我想創建一個新的邏輯變量(傳輸),指示向量(mrn)的每個元素是否存在於 6 個數據幀中。 我在一個名為傳輸的列表中有 6 個數據幀。 下面的代碼可以滿足我的要求,但效率低下。
mer_tpa1520 <- mer_tpa1520 %>%
mutate(transfer = ifelse(mrn %in% transfers[[1]]$`MRN #` |
mrn %in% transfers[[2]]$`MRN #` |
mrn %in% transfers[[3]]$`MRN #` |
mrn %in% transfers[[4]]$`MRN #` |
mrn %in% transfers[[5]]$`MRN #` |
mrn %in% transfers[[6]]$`MRN #`,
TRUE, FALSE))
我試圖用下面的代碼來實現這一點,但沒有成功。 if 語句沒有向量化,我不知道如何使它與 ifelse 一起工作。
for (i in 1:length(transfers)){
if(mer_tpa1520$mrn %in% transfers[[i]]$`MRN #`){
mer_tpa1520$transfer <- TRUE
}
}
謝謝你。
也許,如果您的數據不需要這種特定結構(data.frames 列表):
# bind all data frames in the list.
# The name of each item in the original list is saved in the new columns "data.frame.name"
df <- bind_rows(transfers, .id = "data.frame.name")
現在這應該更容易了,盡管我不確定它在你需要的意義上是否有效。
# Creating a new "transport" variable in mer_tpa1520
mer_tpa1520$transfer <- mer_tpa1520$mrn %in% df$`MRN #`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.