r-每N次观测拆分一个数据集的最佳方式



目前,我有3个数据集,每个数据集有1368行数据点。

a <- sample(0:10000,1368, rep=TRUE)
Df <- data.frame(obs=c(1:1368),
var1=a)

df2<-data.frame(col1=Df$var1[1:90],
col2=Df$var1[91:180],
col3=Df$var1[181:270])
Dataset 1
col1 col2 col3
1  7878 8130 3924
2  5781 4375 6232
3  9324 9066 1734
4  9754 8796 2047
5  3462 4930 7381
6  7379 8103 3404
7  7355 5212 4505
dataset 2
col1 col2 col3
1  7878 8130 3924
2  5781 4375 6232
3  9324 9066 1734
4  9754 8796 2047
5  3462 4930 7381
6  7379 8103 3404
7  7355 5212 4505
8  5599 6887 5775
9  2321 7948 3553
10 3717 1248 5818
11 6276 5528  206
12 1328 1158 8681
13 4470 3009 1332
14 6472 9018  606

作为一个用于预期结果的数据集的示例,我省略了多余的行。

我的意图是将每个数据集依次拆分为子集,每个子集有90个观测值。我知道可分割的问题,但具有更多条目的最后一个子集不是问题,主要关注的只是将观察结果划分为不同的数据集或不同的列,以对每个数据子集进行特定的统计测试,如t测试。最终结果应该是一个包含14列的数据帧。

最终目标是将1368个观测值的所有3个数据集划分为相等的子集。

将数据集拆分为这些子集的最佳方法是什么?

这应该会让你开始,但如果没有可复制的数据,就不可能根据你的特定数据调整通用方法:

n <- 1368    # rows
subsets <- n %/% 90   # 15 subsets
extra <- n %% 90      # 18 extra
grp <- c(rep(1:subsets, each=90), rep(subsets, extra))  # group numbers for each row assuming the extra goes in the last group
table(grp)
# grp
#   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 
#  90  90  90  90  90  90  90  90  90  90  90  90  90  90 108

然后使用grpsplit()将数据帧放入组列表中。

最新更新