我想按组创建一个变量,以个别级别的现有变量为条件。每个人都有一个异常值变量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
有什么建议吗?
谢谢!
答案 0 :(得分: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))