假设我有以下数据帧名为df:

df<- data.frame("id" = c(1,1,1,2,2,2,3,3,3,4,4,4,5,5),
                "relation" =c(1,2,3,1,2,3,1,2,3,1,2,3,1,2), 
                "salary" =c(20,10,0,30,0,0,10,0,0,40,45,42,15,0))

我想提取两个数据帧,这样如果一个家庭是双收入家庭或单收入家庭.那些家庭成员至少有两个非零工资的家庭被认为是双收入家庭,但那些只有一个非零工资的家庭是单收入家庭. 我的预期yields 是这样的:

one-earner : 
 id relation salary
1  2        1     30
2  2        2      0
3  2        3      0
4  3        1     10
5  3        2      0
6  3        3      0
7  5        1     15
8  5        2      0

two-earner:
id relation salary
1  1        1     20
2  1        2     10
3  1        3      0
4  4        1     40
5  4        2     45
6  4        3     42

我试着用下面的代码,但我不知道如何指定不同的非零工资数字的家庭:

two_earner <- df %>%
  group_by(address) %>%
  filter(all(salary >=2 ))

one_earner <- df %>%
  group_by(address) %>%
  filter(all(salary ==1 ))

推荐答案

我认为如果是mean(salary > 0) > 1/2,情况就是这样.

> split(df, with(df, ave(salary, id, FUN=\(x) mean(x > 0) > 1/2))) |>
+   setNames(c('one', 'two'))
$one
   id relation salary
4   2        1     30
5   2        2      0
6   2        3      0
7   3        1     10
8   3        2      0
9   3        3      0
13  5        1     15
14  5        2      0

$two
   id relation salary
1   1        1     20
2   1        2     10
3   1        3      0
10  4        1     40
11  4        2     45
12  4        3     42

Data:

> dput(df)
structure(list(id = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 
5), relation = c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2), salary = c(20, 
10, 0, 30, 0, 0, 10, 0, 0, 40, 45, 42, 15, 0)), class = "data.frame", row.names = c(NA, 
-14L))

R相关问答推荐

使用rlang s arg_match判断函数输入列表

按R中的组查找相邻列的行累积和的最大值

在R中列表的结尾添加数字载体

将复杂的组合列表转换为数据框架

使用gggrassure减少地块之间的空间

如何自定义Shapviz图?

R中的子集文件—读取文件名索引为4位数字序列,例如0001到4000,而不是1到4000)

用值序列对行进行子集化,并标识序列开始的列

根据列A中的差异变异列,其中行由列B中的相对值标识

KM估计的差异:SvyKm与带权重的调查

远离理论值的伽马密度曲线下面积的近似

为什么我对圆周率图的蒙特卡罗估计是空的?

R代码,用于在线条图下显示观测表

网络抓取新闻标题和时间

基于R中的辅助向量中的值有条件地连接向量中的字符串

如何使用循环从R中的聚合函数创建列,而不会在名称中给出&q;$&q;?

对一个数据帧中另一个数据帧中的值进行计数

如何计算多个变量的百分比与总和的百分比?

我有2011-2022年的年度数据.如何计算最低年份和最高年份之间的差额?

真实世界坐标的逆st_变换