基于组事件在数据框中生成新列

CF

我有一个包含三组(x:1、2、3)和一些事件(y 中的 0 和 1)的数据框:

x <- c(1, 1, 1, 2, 2, 3, 3, 3, 3)
y <- c(0, 0, 1, 0, 0, 0, 0, 0, 1)
df <- data.frame(x, y)
df

> df
  x y
1 1 0
2 1 0
3 1 1
4 2 0
5 2 0
6 3 0
7 3 0
8 3 0
9 3 1

现在我想根据 y 中的事件生成一个新列 z:如果一组中有任何 y = 1,则整个组应该为 z 获得 1;否则不适用。z 如何以这种方式生成?df 应如下所示:

> df
  x y  z
1 1 0  1
2 1 0  1
3 1 1  1
4 2 0 NA
5 2 0 NA
6 3 0  1
7 3 0  1
8 3 0  1
9 3 1  1

我很感激任何帮助。

乌图邦

有了dplyr你可以这样来做:

library(dplyr)

df %>%
  group_by(x) %>%
  mutate(z = ifelse(any(y == 1), 1, NA)) %>%
  data.frame()

#   x y  z
# 1 1 0  1
# 2 1 0  1
# 3 1 1  1
# 4 2 0 NA
# 5 2 0 NA
# 6 3 0  1
# 7 3 0  1
# 8 3 0  1
# 9 3 1  1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据嵌套组中的组事件在数据框中生成新列

在数据框中生成新列,按组计数重复项

通过基于R?中的分位数来分配值,从而在数据框中生成新列。

在数据框中生成7列的所有组合,并添加相应的行以生成新列

基于跨多个列应用函数,在R数据框中生成新列

在数据框中生成日期列

在数据面板中生成列模式

如何使用“for-loop”和列添加在数据框中生成列?

如何在数据框中按行应用函数以在r中生成新的或扩展的数据框

使用唯一的列值对在数据框中生成二元标识符

使用Pyspark根据多个值在数据框中生成n列

在 python 中创建一个带有“while”循环的函数,并使用该函数在数据框中生成一个新列

Scala:在数据框中生成日期

如何在数据框中生成缺失行

如何基于同一数据的子集在数据框中创建新列

在数据框中创建基于条件和另一列值的新列

基于现有列在数据框中创建新的累积列

如何基于其他列的排列在数据框中创建新列?

奇怪的行为。创建新列时,Pandas数据框中生成的单个负值

具有 value_counts 的 Pandas groupby 并在新数据框中生成列

Python 在新的列数据框中生成 16 个随机数字和字母

在 pyspark 的数据框中生成 6 位随机数作为新列

在我的代码中使用条件在熊猫数据框中生成新列

创建一个 awk 脚本以在数据集中生成一个新列?

比较行与条件并在 Pandas 中生成新的数据框

如何基于R中特定列给出的子组创建新的数据框提取方法

我需要基于两列数据框生成新列,如何才能更快?

基于约束的数据框列生成

如何在R数据框中生成具有来自多个列的有序项的新列