gpt4 book ai didi

R:在同一列中查找匹配值的索引

转载 作者:行者123 更新时间:2023-12-04 23:12:40 25 4
gpt4 key购买 nike

今天这给我带来了很多麻烦,我确信有一个我没有想到的明显解决方案。

我有一个几千行的数据框。有一列,该列中的每个值恰好出现两次。我想定位每个匹配值的索引。该列如下所示:

  col
1 cat
2 dog
3 bird
4 dog
5 bird
6 cat

而且我想知道匹配出现的相应索引,因此它会返回如下内容:
[1] 6 4 5 2 3 1

最佳答案

我们可以做的

df$new_col <- seq_along(df$col)
df$new_col <- with(df, ave(new_col, col, FUN = rev))
df
# col new_col
#1 cat 6
#2 dog 4
#3 bird 5
#4 dog 2
#5 bird 3
#6 cat 1

第一步,我们创建一个 new_col作为从 1 到 nrow(df) 的序列.所以这个变量与行号没有区别。

如果我们想到变量 col作为定义组,如果我们 rev,我们可以得到“匹配出现的相应索引”。按 col 组修改新创建的列以获得所需的输出。

作为单线
with(df, ave(seq_along(col), col, FUN = rev))

数据
df <- structure(list(col = c("cat", "dog", "bird", "dog", "bird", "cat"
)), .Names = "col", class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))

关于R:在同一列中查找匹配值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52572527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com