我有脑痉挛.以下是玩具数据集:
df <- data.frame(
id = 1:6,
v1 = c("a", "a", "c", NA, "g", "h"),
v2 = c("z", "y", "a", NA, "a", "g"),
stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)
我有一个特定的值,我希望在一组定义的列中找到它,我想确定它所在的位置.我正在搜索的字段是字符,诀窍是我正在寻找的值可能不存在.此外,数据集中还存在空字符串.
假设我知道如何做,变量位置表示我想要返回的值.
> 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
Run Code Online (Sandbox Code Playgroud)
一般规则是我想找到值"a"的位置,如果它没有找到或者如果缺少v1,那么我想要99返回.
在这个例子中,我正在搜索v1和v2,但实际上,我有10个不同的变量.值得注意的是,我搜索的值只能在10个变量中存在一次.
生成此重新编码的最佳方法是什么?
提前谢谢了.
Pra*_*ani 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5042 次 |
| 最近记录: |