НС-ны кірістірілген тізімнен қалай дұрыс орналастыру керек?

I'm working with a list of lists - let's call it L - in R, where the sub-lists are all the same length & padded with NAs. Ideally, I'd like to remove just the NA elements from each sublist, and one solution I've come up with is L <- lapply(L, na.omit). It seems to almost work; however, for each sub-list, the behavior is such that, for example,

[[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 деп көргім келді, бірақ сол нәтижені береді. Менде жоғалған нәрсе бар ма? Алдын-ала рақмет : )

4

2 жауаптар

? Na.omit бөлімінің Толық бөлімінде:

Егер «na.omit» жағдайларды алып тастаса, жағдайлардың нөмірлері сандарды құрайды   «» Na.action «» нәтижесінің атрибуты, сынып «» жоқ «.

Әрбір тізім элементін is.na арқылы жиып көріңіз:

L <- lapply(L, function(x) x[!is.na(x)])
8
қосылды
D'oh! Рахмет - Мен оны сынап көремін.
қосылды автор a barking spider, көзі

Жоғары деңгейлі функцияларды қолданатын тағы бір шешім

lapply(L, Filter, f = Negate(is.na))
3
қосылды