使用函数unlist丢失数据

Hag*_*ner 8 r

我有一个简单而奇怪的问题.

indices.list是一个列表,包含118,771个元素(整数或数字).通过应用函数unlist,我失去​​了大约500个元素.

看下面的代码:

> indices <- unlist(indices.list, use.names = FALSE)
> 
> length(indices.list)
[1] 118771
> length(indices)
[1] 118248
Run Code Online (Sandbox Code Playgroud)

怎么可能?我检查了indices.list是否包含任何NA.但它没有:

> any(is.na(indices.list) == TRUE)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

data.set.merged是一个包含超过200,000行的数据帧.当我使用向量索引(显然长度为118,248)以获取data.set.merged的子集时,我得到一个118,771行的数据帧!那太奇怪了!

data.set.merged.2 <- data.set.merged[indices, ]
> nrow(data.set.2)
[1] 118771
Run Code Online (Sandbox Code Playgroud)

有什么想法在这里发生?

jor*_*ran 10

好吧,对于你的第一个谜,可能的解释是,有些元素indices.listNULL,这意味着它们会在你使用时消失unlist:

unlist(list(a = 1,b = "test",c = 2,d = NULL, e = 5))
     a      b      c      e 
   "1" "test"    "2"    "5" 
Run Code Online (Sandbox Code Playgroud)