gpt4 book ai didi

r - 查找特定值的列索引

转载 作者:行者123 更新时间:2023-12-04 22:36:39 26 4
gpt4 key购买 nike

我有脑抽筋。下面是一个玩具数据集:

df <- data.frame(
id = 1:6,
v1 = c("a", "a", "c", NA, "g", "h"),
v2 = c("z", "y", "a", NA, "a", "g"),
stringsAsFactors=F)

我有一个特定的值,我想在一组定义的列中找到它,我想确定它所在的位置。我正在搜索的字段是字符,诀窍是我正在寻找的值可能不存在。此外,数据集中还存在空字符串。

假设我知道如何做到这一点,变量 position 表示我想要返回的值。
> df
id v1 v2 position
1 1 a z 1
2 2 a y 1
3 3 c a 2
4 4 <NA> <NA> 99
5 5 g a 2
6 6 h g 99

一般规则是我想找到值“a”的位置,如果没有找到或者v1缺失,那么我想返回99。

在这种情况下,我正在搜索 v1 和 v2,但实际上,我有 10 个不同的变量。还值得注意的是,我正在搜索的值在 10 个变量中只能存在一次。

生成此重新编码的最佳方法是什么?

提前谢谢了。

最佳答案

使用 match :

> df$position <- apply(df,1,function(x) match('a',x[-1], nomatch=99 ))
> df
id v1 v2 position
1 1 a z 1
2 2 a y 1
3 3 c a 2
4 4 <NA> <NA> 99
5 5 g a 2
6 6 h g 99

关于r - 查找特定值的列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5123650/

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