我在 R 中索引 data.frames 时遇到了一些问题。我是 R 初学者。我有一个data.frame
调用d
,它有 35512 列和 77 行。我有一个名为的列表rd
,其中包含 35512 个元素。我想要其中的所有列d
对应于rd
小于 100 的项目。这就是我正在做的事情:
# just to prove I'm not crazy
> length(colnames(d))
[1] 35512
> length(rownames(d))
[1] 77
> length(rd)
[1] 35512
# find all the elements of rd less than 100 (+ unnecessary faffing?)
> i <- unlist(rd<100)
> names(i) <- NULL
# try to extract all the elements of d corresponding to rd < 100
> d <- d[,i]
Error in `[.data.frame`(d, , i) : undefined columns selected
我真的不想做那些事unlist
,names(i) <- NULL
但我变得很偏执。任何人都可以帮助解决此错误消息的含义吗?
如果有帮助,rd
则使用以下内容创建变量:
rd = lapply(lapply(d, range), diff)
这希望能告诉我每列范围的差异d
。
对于任何可以告诉我一个命令来查找 data.frame 的形状而不是查询其行名和列名的长度的人来说,PS 奖金真棒。
编辑:这rd
看起来像:
> rd[1:3]
$`10338001`
[1] 7198.886
$`10338003`
[1] 4748.963
$`10338004`
[1] 3173.046
当我完成我的工作时,i
看起来像这样:
> i[7:10]
[1] FALSE FALSE FALSE TRUE