我有两个数据帧,df1包含一个groupID和连续变量,如下所示:

GroupID      Var1      Var2         Var3      Var4
1          20.33115  19.59319    0.6384765  0.6772862
1          31.05899  23.14446    0.5796645  0.7273182
2          24.28984  20.99047    0.6425050  0.6865804
2          22.47856  21.36709    0.6690020  0.6368560
3          21.65817  20.99444    0.6829786  0.6461840
3          23.45899  21.57718    0.6655482  0.6473043 

df2包含每个变量的截止值(ct):

Var1ct    Var2ct    Var3ct    Var4ct
22.7811   20.3349   0.7793    0.4294

我想做的是,对于df1中的每个变量,在df2中的相关列n中找到值大于截止值的行数,并 for each groupID返回该数字,因此输出如下所示:

GroupID   N-Var1   N-Var2   N-Var3   N-Var4
1          62       78       33       99
2          69       25       77       12
3          55       45       27       62

df1由GroupID和30个变量列不均匀地分布了约200万行,我需要计算它们的数量,我只是在寻找一种比为所有30个变量键入相同函数更有效的方法.

推荐答案

这里有一个百分百的方法:

library(dplyr)
df1 %>% 
  group_by(GroupID) %>% 
  summarise(across(everything(), ~ sum(.x > df2[grepl(cur_column(), colnames(df2))][, 1])))

  GroupID  Var1  Var2  Var3  Var4
    <int> <int> <int> <int> <int>
1       1     1     1     0     2
2       2     1     2     0     2
3       3     1     2     0     2

数据

df1 <- read.table(header = T, text = "GroupID      Var1      Var2         Var3      Var4
1          20.33115  19.59319    0.6384765  0.6772862
1          31.05899  23.14446    0.5796645  0.7273182
2          24.28984  20.99047    0.6425050  0.6865804
2          22.47856  21.36709    0.6690020  0.6368560
3          21.65817  20.99444    0.6829786  0.6461840
3          23.45899  21.57718    0.6655482  0.6473043 ")

df2 <- read.table(header = T, text = "Var1ct    Var2ct    Var3ct    Var4ct
22.7811   20.3349   0.7793    0.4294")

R相关问答推荐

使用ggcorrplot删除值,但保留不重要相关性的 colored颜色

使用geom_rect的带有事件注释的时间序列图

在集合群体模型中计算时间步依赖的速率/参数

Facet_wrap具有不同bin宽度值的图表

如何在球体上绘制轮廓线?

R图中的字体大小和字体样式(带有R底图)

如何使用行政边界形状文件中的人口普查数据调整格栅数据集中的人口数据

用单个表达匹配多个替代模式

具有多个依赖变量/LHS的逻辑模型

从有序数据中随机抽样

如何对数据集进行逆向工程?

找出疾病消失的受试者

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

如何优化向量的以下条件赋值?

在R中使用Scale_y_Break后更改y轴标签

如何在PDF格式的kableExtra表格中显示管道字符?

`-`是否也用于数据帧,有时使用引用调用?

如何筛选截止年份之前最后一个测量年度的所有观测值以及截止年份之后所有年份的所有观测值

R中治疗序列的相对时间指数

当由base::限定时,`[.factor`引发NextMethod错误