【发布时间】:2013-06-07 13:09:51
【问题描述】:
当我创建一个数据框时,其中一个变量包含一个整数向量,例如
id <- 1:5
meas <- list(NA,c(1,2),c(1),c(1,2,3),c(1,2,3,4))
myDf <- data.frame(cbind(id,meas))
我可以轻松地将向量复制到另一个变量中或检查它是否包含 NA
myDf$copyMeas <- myDf$meas
myDf$naMeas <- is.na(myDf$meas)
但是当我想获得向量的长度时,我会获得数据框中的观察次数
myDf$lengthMeas <- length(myDf$meas)
id meas copyMeas naMeas lengthMeas
1 1 NA NA TRUE 5
2 2 1, 2 1, 2 FALSE 5
3 3 1 1 FALSE 5
4 4 1, 2, 3 1, 2, 3 FALSE 5
5 5 1, 2, 3, 4 1, 2, 3, 4 FALSE 5
为什么会出现这种行为?当我想要另一个变量中向量的长度时应该使用什么?
【问题讨论】:
-
你有一个列表列表的data.frame(它本身就是一个列表)。 R 中的这种结构称为
probably.looking.for.trouble。 -
呸,列表(列表中(列表中(甚至可能是(更多)列表中)))很好。你只需要确保你有(足够的(和必要的))括号(任何类型的)(有时(但不总是)嵌套的)方便。