我想在data.frame中创建一个新列,其值等于另一个data.frame中的值,其中每个数据帧中的两列之间满足特定条件。
R伪代码是这样的:
DF1$Activity <- DF2$Activity where DF2$NAME == DF1$NAME
$NAME
的每个data.frame值在列中都是唯一的。
答案 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]