使用函数unlist丢失数据

时间:2012-01-01 23:38:58

标签: r

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

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

请查看以下代码:

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

怎么可能?我检查了indices.list是否包含任何NA。但事实并非如此:

> any(is.na(indices.list) == TRUE)
[1] FALSE

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

这里有什么想法吗?

1 个答案:

答案 0 :(得分:10)

嗯,对于你的第一个谜,可能的解释是indices.list的某些元素是NULL,这意味着当你使用unlist时它们会消失:

unlist(list(a = 1,b = "test",c = 2,d = NULL, e = 5))
     a      b      c      e 
   "1" "test"    "2"    "5"