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

gvd*_*vdb 3 r dataframe

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

R伪代码是这样的:

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

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

42-*_*42- 6

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

DF1$Activity <- NA
DF1$Activity[DF2$NAME == DF1$NAME] <- DF2$Activity[DF2$NAME == DF1$NAME]
Run Code Online (Sandbox Code Playgroud)


sna*_*aut 6

使用ifelse功能。在此,当不满足条件时,我输入NA。但是,您可以从任何向量中选择任何一个或多个值。回收规则1适用。

DF1$Activity <- ifelse(DF2$NAME == DF1$NAME, DF2$Activity, NA)
Run Code Online (Sandbox Code Playgroud)


小智 2

没有例子很难说。但从你的描述来看,这听起来像是一个base::mergedplyr::inner_join操作。与if语句相比,这些速度相当快。

干杯