【发布时间】:2011-07-04 15:57:03
【问题描述】:
我的脑抽筋了。下面是一个玩具数据集:
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 个变量中只能存在一次。
生成此重新编码的最佳方法是什么?
提前非常感谢。
【问题讨论】: