R:根据满足条件的另一列的值将值分配给新列

时间:2016-01-11 04:05:58

标签: r dataframe

我想在data.frame中创建一个新列,其值等于另一个data.frame中的值,其中每个数据帧中的两列之间满足特定条件。

R伪代码是这样的:

DF1$Activity <- DF2$Activity where DF2$NAME == DF1$NAME

$NAME的每个data.frame值在列中都是唯一的。

3 个答案:

答案 0 :(得分:5)

使用ifelse功能。在这里,我在不满足条件时放入NA。但是,您可以从任何向量中选择任何值。 回收规则1适用。

DF1$Activity <- ifelse(DF2$NAME == DF1$NAME, DF2$Activity, NA)

答案 1 :(得分:1)

没有例子很难说清楚。但是根据您的描述,它听起来像是select name from my_table; base::merge操作。与dplyr::inner_join语句相比,这些都非常快。

干杯

答案 2 :(得分:0)

我不确定这个实际上需要一个例子。创建具有一组NA值的列,然后在两侧分配所需的行具有相同的逻辑向量时会发生什么:

DF1$Activity <- NA
DF1$Activity[DF2$NAME == DF1$NAME] <- DF2$Activity[DF2$NAME == DF1$NAME]