我有一个简单而奇怪的问题.
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.list是NULL,这意味着它们会在你使用时消失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)