如何在 R 中遍歷多個資料集,這在 Python 中似乎有點難以捉摸。
我們有 4 個串列,想要簡單地洗掉所有缺失值。
例子:
a <- c(1,2,3, NA)
b <- c(1,NA,3, NA)
e <- c(1,2,3, 4)
f <- c(NA,2,3, NA)
is.na(a_df) ## -> TRUE
na_list = list(a, b, e, f)
什么已經嘗試過:
- 復制代碼 4 次,這是 DRY 但有效。
for (lst in na_list){
lst <- zoo::na.aggregate(lst)
}
- 使用 Lappy
na_list <- lapply(na_list, zoo::na.aggregate)
> na_list
[[1]]
[1] 1 2 3 2
[[2]]
[1] 1 2 3 2
但..
> a
[1] 1 2 3 NA
uj5u.com熱心網友回復:
已根據更新的問題進行了修改。請注意,問題中現在顯示的輸入是數字向量,而不是 R 串列。
首先使用 mget 創建一個命名串列 L,然后將 na.aggregate 應用于 L 的每個組件,最后將組件寫回全域環境;但是,您可能只想將結果保留為 L2,因為更難除錯覆寫變數的代碼。
library(zoo)
nms <- c("a", "b", "e", "f")
L <- mget(nms)
L2 <- lapply(L, na.aggregate)
list2env(L2, .GlobalEnv)
這也可以代替最后 3 行。
for(nm in nms) assign(nm, na.aggregate(get(nm)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/469425.html
上一篇:在R中使用write.csv()函式,但實際上并沒有將其保存到我的C中:
下一篇:如何獲取特定行數
