【问题标题】:create variable conditionally by group in R (write function)在 R 中按组有条件地创建变量(写入函数)
【发布时间】:2017-12-04 21:02:27
【问题描述】:

我想根据个人级别的现有变量按组创建变量。每个人都有一个异常变量 1、2、3。我想按组创建一个新变量,以便每当该组中至少有一个人的异常变量 = 2 时,新的 var = 2;并且只要该组中至少有一个人的异常变量= 3,则新的var = 3。

数据是这样的

grpid id outlier
1     1   1
1     2   1
1     3   2
2     4   1
2     5   3
2     6   1
3     7   1
3     8   1
3     9   1

这样的理想输出

grpid id outlier  goutlier
1     1   1       2
1     2   1       2
1     3   2       2
2     4   1       3
2     5   3       3
2     6   1       3
3     7   1       1
3     8   1       1
3     9   1       1

有什么建议吗?

谢谢!

【问题讨论】:

    标签: r function plyr


    【解决方案1】:

    dplyr 很容易

    library(dplyr)
    df <- read.table(header = TRUE,sep = ",",
                     text = "grpid,id,outlier
    1,1,1
    1,2,1
    1,3,2
    2,4,1
    2,5,3
    2,6,1
    3,7,1
    3,8,1
    3,9,1")
    
    df %>% group_by(grpid) %>% mutate(goutlier = max(outlier))
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多