目前,我有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
然后使用grp
到split()
将数据帧放入组列表中。