使用数字值data.frame
和字符向量。字符向量不是一个命名字符(与here不同)。
下面的玩具代码实现了我想要做的事情,但我一直试图回避for
循环并使用*apply
系列或其他可用功能在{base}
。
df = data.frame(act_val = c(1:10))
temp = letters[1:10]
for (i in 1:length(temp)){
df$act_name[df$act_val == i] = temp[i]
}
所以,IFF act_val == 1
然后act_name == "a"
。我意识到这有点是一个命名字符向量的混合版本,其中角色的位置实际上被用作值names()
的值。
所有这一切,必须有更像R的方式?
迈克尔
答案 0 :(得分:4)
您可以使用temp[df$act_val]
对查找进行矢量化,然后分配到列:
df$act_name = temp[df$act_val]