gpt4 book ai didi

r - 一个数据集拆分成多个数据集后如何计算?

转载 作者:行者123 更新时间:2023-12-02 08:00:14 25 4
gpt4 key购买 nike

我想获取一个数据集并将其拆分为多个数据集。对于问题的简化版本。实际上,我将有数千行,但为了便于理解,我想简化问题。假设您有以下代码:

vec = c(1:10)
df = data.frame(vec)
df
vec
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10

我想将此数据集拆分为每行 5 个观察值,然后获取每 5 行的平均值。

到目前为止,我已尝试按以下方式拆分代码:

splitdf = split(df, rep(1:2,each = 5))

现在我想得到每组的平均值。比如第一个chunk的均值为3,第二个chunk的均值为8。

然后,我想做一个 rep 函数并将它存储在一个单独的列中。我希望我的数据框如下所示:

   vec  mean
1 1 3
2 2 3
3 3 3
4 4 3
5 5 3
6 6 8
7 7 8
8 8 8
9 9 8
10 10 8

我想知道循环函数是否合适,或者是否有更简单的方法来解决这个问题。我乐于接受建议。

最佳答案

如果您想在此处处理拆分数据框,只需添加即可。

# Your vector
vec = c(1:10)

# your dataframe
df = data.frame(vec)

# Your split df
splitdf = split(df, rep(1:2,each = 5))

# -------------------------------------------------------------------------
#initialize a list (avg) with the size of splitdf
avg <- vector("list", length(splitdf))
# loop through each list and compute the mean and assign each to avg
for (i in seq_along(splitdf)){
avg[[i]] <- mean(splitdf[[i]]$vec)
}
# avg
# [[1]]
# [1] 3
#
# [[2]]
# [1] 8
# unlist avg and create a column mean on df
df$mean <- rep(unlist(avg), each=5)
# df
# vec mean
# 1 1 3
# 2 2 3
# 3 3 3
# 4 4 3
# 5 5 3
# 6 6 8
# 7 7 8
# 8 8 8
# 9 9 8
# 10 10 8

关于r - 一个数据集拆分成多个数据集后如何计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58254595/

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