我正在使用列表列表 - 让我们称之为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
Run Code Online (Sandbox Code Playgroud)
变
[[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"
Run Code Online (Sandbox Code Playgroud)
我有点困惑,说实话 - attr()我的清单中的额外内容是什么?那里有解决方案,不会将它们附加到列表中吗?我试过了na.exclude,但它给出了相同的结果.有什么我想念的吗?提前致谢 : )
没有理由感到困惑......细节部分?na.omit说:
如果'na.omit'删除了案例,则案例的行号构成结果的'"na.action"'属性,类'"省略"'.
尝试用每个列表元素进行子集化is.na:
L <- lapply(L, function(x) x[!is.na(x)])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1996 次 |
| 最近记录: |