我有一个包含压力数据的大型数据集。我希望能够创建多个数据集,这些数据集在不同的值(即〉3500、〉3600等)进行过滤,然后对这些新数据集中的每个数据集运行几个分析,这些数据集在指定值处截止。
例如,这可能类似于我现在做的:
#making a reproducible example
pressure <- runif(30, min = 3750, max = 4500)
value <- runif(30, min = 0, max = 50)
stage <- rep(c(1, 2), each = 15)
raw.data <- data.frame(pressure, value, stage)
#set a cutoff point
cutoff.press <- 3750
#make a new dataset
cutoff <- raw.data[raw.data$pressure > cutoff.press,]
#run an analysis
analysis <- cutoff %>%
group_by(stage) %>%
summarize(
MinValue = min(value),
MaxValue = max(value)
)
是否有一种方法可以做到这一点,而不必为每个感兴趣的临界值创建多个单独的数据集,然后单独运行每个分析?
例如,如果我想测试多个压力截止值(如seq(3750, 4000, 50)
),我不想为序列中生成的每个值重复上述过程。
我曾经考虑过将dplyr
与filter()
函数一起使用,并手动设置一系列值,但这不仅会耗费时间,而且我不确定是否允许我对多个数据集进行分析。
4条答案
按热度按时间7uzetpgm1#
如果您希望运行许多不同的迭代,那么使用
purrr
也是一个不错的选择,因为您可以在一个管道中完成所有工作。产出
数据
ngynwnxp2#
1.我们可以通过
case_when
语句创建分组或截断组。1.分成这些组(您将获得一个列表)
map
超过名单,也是第一次提供的安德鲁吉里斯布朗!vxf3dgd43#
尝试
sapply
函数,如下所示:h79rfbju4#
写一个函数: