gpt4 book ai didi

r - 如何使用R中的条件语句将一个数据框拆分为多个数据框

转载 作者:行者123 更新时间:2023-12-02 17:59:16 25 4
gpt4 key购买 nike

我的数据如下所示:

time <- c(1:20)
temp <- c(2,3,4,5,6,2,3,4,5,6,2,3,4,5,6,2,3,4,5,6)
data <- data.frame(time,temp)

这是我的数据的非常基本的表示。如果您绘制此图,您可以轻松看到有 4 个向上倾斜的数据组。我想将原始数据帧分成这 4 个“子集”,以便我可以对它们进行计算,例如“平均值”、“最大值”、“最小值”和“标准差”。我想使用 split() 但它只会根据因子级别进行拆分。我希望能够提供 split 条件语句,例如 split if: diff(data$temp) > -2

我的问题实际上比这复杂得多,但是是否有像 split 这样的函数可以让我根据条件语句创建新的数据框?与基于因素水平的 split 相反。

谢谢大家!

最佳答案

诀窍是将条件语句转换为可以解释为因子的内容。在这个特定的例子中:

tmp <- c(1,diff(data[[2]]))
# [1] 1 1 1 1 1 -4 1 1 1 1 -4 1 1 1 1 -4 1 1 1 1
tmp2 <- tmp < 0
# [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
# [13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
tmp3 <- cumsum(tmp2)
# [1] 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
split(data, tmp3)
# $`0`
# time temp
# 1 1 2
# 2 2 3
# 3 3 4
# 4 4 5
# 5 5 6
#
# $`1`
# time temp
# 6 6 2
# 7 7 3
# 8 8 4
# 9 9 5
# 10 10 6
#
# $`2`
# time temp
# 11 11 2
# 12 12 3
# 13 13 4
# 14 14 5
# 15 15 6
#
# $`3`
# time temp
# 16 16 2
# 17 17 3
# 18 18 4
# 19 19 5
# 20 20 6

关于r - 如何使用R中的条件语句将一个数据框拆分为多个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20983792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com