在R中按组有条件地创建变量(写函数) [英] create variable conditionally by group in R (write function)
本文介绍了在R中按组有条件地创建变量(写函数)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想按组创建一个变量,条件是在单个级别上以现有变量为条件.每个人都有一个离群变量1,2,3.我想按组创建一个新变量,以便每当该组中至少有一个人的离群变量= 2时,新的var = 2;因此,当该组中至少有一个个体的离群变量= 3时,新的var =3.
I want to create a variable by group conditioned on existing variable on individual level. Each individual has a outlier variable 1, 2, 3. I want to create a new variable by group so that the new var = 2 whenever there is at least one individual in that group whose outlier variable = 2; and the new var = 3 whenever there is at least one individual in that group whose outlier variable = 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
有什么建议吗?
谢谢!
推荐答案
使用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))
这篇关于在R中按组有条件地创建变量(写函数)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文