R - for循环替代条件填充元组?

时间:2016-09-20 19:38:30

标签: r

使用数字值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的方式?

迈克尔

1 个答案:

答案 0 :(得分:4)

您可以使用temp[df$act_val]对查找进行矢量化,然后分配到列:

df$act_name = temp[df$act_val]