大脑今天不能正常工作。我有一个数据框,如下所示:
V1 V2
1 8 200
2 8 200
3 8 200
4 8 200
5 34 250
6 8 2500
我想返回一个列表,该列表的每个元素都包含我的数据帧中每对唯一元素对的索引的向量。该列表应如下所示:
[[1]]
[1] 1 2 3 4
[[2]]
[1] 5
[[3]]
[1] 6
我已经引用了这个线程-非常相似-但仍然很困惑。
在此先感谢。
假设mydf
是您的数据框,并且可以返回行名称的字符值,那么您可以尝试:
> lapply(split(mydf, list(mydf$V1, mydf$V2), drop=TRUE), row.names)
$`8.200`
[1] "1" "2" "3" "4"
$`34.250`
[1] "5"
$`8.2500`
[1] "6"
否则有点冗长:
> lapply(split(mydf, list(mydf$V1, mydf$V2), drop=TRUE),
function(x) as.numeric(row.names(x)))
$`8.200`
[1] 1 2 3 4
$`34.250`
[1] 5
$`8.2500`
[1] 6
注意:当然,如果行名称与原始数据框中的行号不对应,则不能将其用作提取索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句