在R中按组有条件地创建变量(写函数) [英] create variable conditionally by group in R (write function)

查看:101
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆