gpt4 book ai didi

r - 如何从嵌套列表中正确省略 NA?

转载 作者:行者123 更新时间:2023-12-03 19:00:56 25 4
gpt4 key购买 nike

我正在处理一个列表列表——我们称之为 L——在 R 中,其中子列表的长度都相同并用 NA 填充。理想情况下,我只想从每个子列表中删除 NA 元素,我提出的一个解决方案是 L <- lapply(L, na.omit) 。它似乎几乎可以工作;然而,对于每个子列表,行为是这样的,例如,

[[1]]
[1] "0" "12345" "12346" "12347" "12348" "12349" "12340" "12341" "12342" NA NA NA NA NA NA

[16] NA NA NA NA NA NA NA NA NA NA NA

变成
[[1]]
[1] "0" "12345" "12346" "12347" "12348" "12349" "12340" "12341" "12342"
attr(,"na.action")
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
attr(,"class")
[1] "omit"

老实说,我有点困惑 - 我的列表中额外的 attr() 等是怎么回事?是否有解决方案不会将它们附加到列表中?我试过 na.exclude ,但它给出了相同的结果。有什么我想念的吗?提前致谢 : )

最佳答案

没有理由感到困惑...... ?na.omit 的详细信息部分说:

If ‘na.omit’ removes cases, the row numbers of the cases form the ‘"na.action"’ attribute of the result, of class ‘"omit"’.



尝试使用 is.na 子集每个列表元素:
L <- lapply(L, function(x) x[!is.na(x)])

关于r - 如何从嵌套列表中正确省略 NA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com