假设我们有以下数据

df <- data.frame(jan=c(10,7,1),
           feb=c(20,9,2),
           mar=c(30,6,3),
           apr=c(5,5,4),
           may=c(0,9,5),
           jun=c(10,8,6)
)


  jan feb mar apr may jun
1  10  20  30   5   0  10
2   7   9   6   5   9   8
3   1   2   3   4   5   6

我期望得到一个新的标志变量,该变量是通过将1组列(1月2月3月)与(4月5月6月)进行比较而得出的,如果1组列的值与另一组列的值匹配,则FLAG=‘Y’,否则‘N’.

在这里,Jan值与第一行的Jun匹配,因此标志为Y.

  jan feb mar apr may jun flag
1  10  20  30   5   0  10    Y
2   7   9   6   5   9   8    Y
3   1   2   3   4   5   6    N

推荐答案

首先,我们遍历数据帧的各行,并在每次迭代中将数据帧unlist转换 for each "集合"的向量.然后使用%in%运算符查看第一个集合中的any个元素是否出现在第二个集合中.最后,将结果赋给df的第flag列.

ifelse部分仅用于将逻辑输出转换为"Y"和"N".如果您对逻辑输出满意,则可以忽略它.

df$flag <- sapply(1:nrow(df), \(x) 
                  ifelse(any(unlist(df[x, 1:3]) %in% unlist(df[x, 4:6])), "Y", "N"))
df
#>   jan feb mar apr may jun flag
#> 1  10  20  30   5   0  10    Y
#> 2   7   9   6   5   9   8    Y
#> 3   1   2   3   4   5   6    N

R相关问答推荐

使用R中的小鼠()进行插补后观察次数显着变化

按崩溃类别分类的指数

如何在ggplot 2 geom_segment图表中将UTC转换为EET?

提取rame中对应r中某个变量的n个最小正值和n个最大负值的条目

使用scale_x_continuous复制ggplot 2中的离散x轴

在特定列上滞后n行,同时扩展框架的长度

无法在我的情节中表现出显着的差异

使用ggplot将平滑线添加到条形图

隐藏e_mark_line的工具提示

如何使用按钮切换轨迹?

`夹心::vcovCL`不等于`AER::tobit`标准错误

如何使这些react 表对象相互独立?

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

是否有可能从边界中找到一个点值?

使用geom_sf跨越日期线时的闭合边界

随机将数据帧中特定列上的某些行设置为NA

有毒元素与表观遗传年龄的回归模型

使用同一行中的前一个值填充R矩阵中的缺失值

我已经运行了几个月的代码的`Palette()`中出现了新的gglot错误