【问题标题】:Searching for NA in a list of lists在列表列表中搜索 NA
【发布时间】:2021-05-15 05:09:52
【问题描述】:

是否可以定位 NA(缺失值)并通过列表和列返回它们的位置?

请考虑以下数据:

list1 <- list(a = c(1, 2), b = c(3, 4), c = c(5, NA))
list2 <- list(d = c(6, 7), e = c(8, 9), f = c("a", "b"))
mylist <- mget(c("list1", "list2"))

预期回报类似于list1$c

我尝试将rlist 与函数list.search 一起使用。提前感谢您的帮助。

【问题讨论】:

  • 可能是rapply(mylist, anyNA),但输出的names 格式不是list1$c
  • 这是一个很好的解决方案,它指示了存在 NA 的列表。谢谢你,它很有帮助!我将等待一个完整的解决方案。
  • 您的mylist 不包含list1list2 的名称,因此@RuiBarradas 的解决方案表单无法返回这些名称。因此,请尝试以下操作:mylist &lt;- mget(c("list1", "list2")) 然后gsub("\\.", "$", names(which(rapply(mylist, anyNA))))
  • 这很好用,@GKi!

标签: r list na


【解决方案1】:

一个非常简单的方法是使用rapplyis.na()。这样的结果将接近您想要的结果:

> rapply(mylist, is.na)
   a1    a2    b1    b2    c1    c2    d1    d2    e1    e2    f1    f2 
FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE 

> which(rapply(mylist, is.na))
c2 
 6 

【讨论】:

  • 您能否修改您的答案以考虑到@GKi 的 cmets?因此,我可以接受/确认您的回答。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-06-26
  • 2013-10-28
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多