remove columns with NAs from all dataframes in list

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 05:16:14

Try this

lapply(WW1_Data, function(x) x[, !is.na(x)])
$Alnön
  Site_Name     X1996     X2000      X2010
1     Alnön 0.3076923 0.2608696 0.08333333

$Ammarnäs
  Site_Name X1996 X2011
2  Ammarnäs  0.75   0.8
...

Julius' answer is great, but since I already started writing...

Your question is a little ambiguous, but if you want to remove any row with an NA from each data.frame in your list:

lapply(WW1_Data, na.omit)

Or you can use your own function, assuming each data.frame in your list only has one row like these do:

myfun <- function(x) {
  x[, !is.na(x)]
}

lapply(WW1_Data, myfun)

Or switch to a single data.frame, melt it and remove rows:

out <- do.call(rbind, WW1_Data)
out.m <- melt(out, id.vars='Site_Name')
na.omit(out.m)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!