在R中查找唯一元素的索引

卡瓦文佩

大脑今天不能正常工作。我有一个数据框,如下所示:

  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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章