You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中统计DF2列值低于DF1每个单元格值的次数

统计DF2$B中小于DF1$A各值的次数

示例数据

DF1 <- data.frame(Q=c("fun","fun"),A=c(200,700))
DF2 <- data.frame(Z=as.Date(c("2023-10-01","2023-10-02","2023-10-03","2023-10-04")),B=c(600,500,100,800))

实现方法

基础R方法(最简洁)

用sapply遍历DF1$A的每个值,统计DF2$B中小于该值的元素个数:

DF1$Counter <- sapply(DF1$A, function(x) sum(DF2$B < x))

执行后DF1$Counter结果为c(1,3),符合预期。

向量化函数写法

如果需要重复使用统计逻辑,可以封装成向量化函数:

count_less <- Vectorize(function(x) sum(DF2$B < x))
DF1$Counter <- count_less(DF1$A)

dplyr方法(适合数据框操作场景)

如果习惯用tidyverse工具链,可通过交叉连接+分组统计实现:

library(dplyr)

DF1 <- DF1 %>%
  mutate(row_id = row_number()) %>%  # 标记行号用于后续匹配
  cross_join(DF2) %>%  # 生成DF1与DF2的所有组合
  group_by(row_id) %>%
  summarise(Counter = sum(B < A)) %>%  # 按行统计符合条件的次数
  right_join(DF1, by = "row_id") %>%  # 合并回原DF1
  select(-row_id)  # 移除临时行号列

内容的提问来源于stack exchange,提问作者user11057680

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:18:12