如何用2组和1列定义一个新列

用户名

我有3栏:

household   persons   activity
  1       1        home
  1       1         shopping
  1       1        home
  1       1         eating
  1       1         work
  1       1        shopping
  1       1         home
  1       2         home
  1       2          shopping
  1       2         home
  2       1         home
  2       1         eating
  2       1         home

第一列是家庭指数,第二列是家庭成员。每个人的每项活动都从家里开始。反对我想捍卫每个家庭的每个人的列循环,当活动是在家或工作后的活动时,它从1开始并更改为循环+1。例如,在以下数据中,第三行是home,因此对于第4行,我们有loop = 2,而第5行是工作,所以我们下班后就有loop = 3

输出

household   persons   activity      loop
  1       1        home               1
  1       1         shopping          1 
  1       1        home               1
  1       1         eating            2
  1       1         work              2
  1       1        shopping           3
  1       1         home              3
  1       2         home              1 
  1       2          shopping         1
  1       2         home              1
  2       1         home              1
  2       1         eating            1
  2       1         home              1
万维网

这是一个主意。我们可以使用rleidfilllead函数来创建loop

dat2 <- dat %>%
  mutate(activity2 = replace(activity, !activity %in% c("home", "work"), NA)) %>%
  group_by(household, persons) %>%
  fill(activity2) %>%
  mutate(loop = lead(rleid(activity2))) %>%
  fill(loop) %>%
  ungroup() %>%
  select(-activity2)
dat2  
# # A tibble: 13 x 4
#    household persons activity  loop
#        <int>   <int> <chr>    <int>
#  1         1       1 home         1
#  2         1       1 shopping     1
#  3         1       1 home         1
#  4         1       1 eating       2
#  5         1       1 work         2
#  6         1       1 shopping     3
#  7         1       1 home         3
#  8         1       2 home         1
#  9         1       2 shopping     1
# 10         1       2 home         1
# 11         2       1 home         1
# 12         2       1 eating       1
# 13         2       1 home         1

数据

dat <- read.table(text = "household   persons   activity
  1       1        home
  1       1         shopping
  1       1        home
  1       1         eating
  1       1         work
  1       1        shopping
  1       1         home
  1       2         home
  1       2          shopping
  1       2         home
  2       1         home
  2       1         eating
  2       1         home",
                  stringsAsFactors = FALSE, header = TRUE)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫 如何用一个简单的功能创建一个新列

来自分类Dev

定义一个新的变量来计算另一列的组元素

来自分类Dev

R:根据组和条件生成一个新列

来自分类Dev

我想创建一个新列,其中关于 3 个组的第一行和最后一行是 2,否则为 NA

来自分类Dev

将组的一个值提取到新列

来自分类Dev

如何使用组由获得一个实体新列的列表

来自分类Dev

每当列值更改时,如何使用“ dplyr”创建一个新组?

来自分类Dev

如何按因子为第一个非 NA 组创建新列?

来自分类Dev

如何相对于4列定义一个新列?

来自分类Dev

如何分配一个新列,其中值是一组基于pandas的多列的列名?

来自分类Dev

如何从现有列创建一个新列?

来自分类Dev

创建新列,按组包含另一列的最后一个值

来自分类Dev

添加新列,每行作为另一列的上一个组值

来自分类Dev

通过比较一组列值创建一个新列

来自分类Dev

如何从组查询的列中选择一个值

来自分类Dev

如何从组查询的列中选择一个值

来自分类Dev

如何使用一个列中的列名和另一个列中的列值重新创建新列

来自分类Dev

如何用另一个数据帧中的列注释一列

来自分类Dev

如何用另一列值替换一个列值

来自分类Dev

将第 1 列和第 2 列与另一个表进行比较

来自分类Dev

根据组中其他列中至少一个变量的出现创建新列

来自分类Dev

如何使用 Grid.ColumnDefinitions 定义一个最左边的列和两个最右边的列

来自分类Dev

如何定义一个复合和散列的mongodb索引?

来自分类Dev

如何用另一个表的列值更新列?

来自分类Dev

如何用一个列的熊猫图形比较几个列

来自分类Dev

如何用另一个数据框列替换数据框列

来自分类Dev

从两列创建一个组

来自分类Dev

Pandas:对组内一列的下 (1 ... n) 行进行滚动求和,并为每个总和创建一个新列

来自分类Dev

如何通过两个文件(File1和File2)之间的一个公共列(1ª)连接两个文件?

Related 相关文章

  1. 1

    熊猫 如何用一个简单的功能创建一个新列

  2. 2

    定义一个新的变量来计算另一列的组元素

  3. 3

    R:根据组和条件生成一个新列

  4. 4

    我想创建一个新列,其中关于 3 个组的第一行和最后一行是 2,否则为 NA

  5. 5

    将组的一个值提取到新列

  6. 6

    如何使用组由获得一个实体新列的列表

  7. 7

    每当列值更改时,如何使用“ dplyr”创建一个新组?

  8. 8

    如何按因子为第一个非 NA 组创建新列?

  9. 9

    如何相对于4列定义一个新列?

  10. 10

    如何分配一个新列,其中值是一组基于pandas的多列的列名?

  11. 11

    如何从现有列创建一个新列?

  12. 12

    创建新列,按组包含另一列的最后一个值

  13. 13

    添加新列,每行作为另一列的上一个组值

  14. 14

    通过比较一组列值创建一个新列

  15. 15

    如何从组查询的列中选择一个值

  16. 16

    如何从组查询的列中选择一个值

  17. 17

    如何使用一个列中的列名和另一个列中的列值重新创建新列

  18. 18

    如何用另一个数据帧中的列注释一列

  19. 19

    如何用另一列值替换一个列值

  20. 20

    将第 1 列和第 2 列与另一个表进行比较

  21. 21

    根据组中其他列中至少一个变量的出现创建新列

  22. 22

    如何使用 Grid.ColumnDefinitions 定义一个最左边的列和两个最右边的列

  23. 23

    如何定义一个复合和散列的mongodb索引?

  24. 24

    如何用另一个表的列值更新列?

  25. 25

    如何用一个列的熊猫图形比较几个列

  26. 26

    如何用另一个数据框列替换数据框列

  27. 27

    从两列创建一个组

  28. 28

    Pandas:对组内一列的下 (1 ... n) 行进行滚动求和,并为每个总和创建一个新列

  29. 29

    如何通过两个文件(File1和File2)之间的一个公共列(1ª)连接两个文件?

热门标签

归档