如何将数据框拆分为固定大小的行并使用 dplyr 将它们分开
How to split Data Frame into Rows of Fixed size and separate them with dplyr
我对 data.frame 进行了排序,其中一列每 21 行重复一次。即 df
中的 V
列
df
是这样的;
set.seed(1)
No <- rep(seq(0,95,1),times=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
AR <- rep(rep(c(256,320,384),each=2),times=length(No)/6)
AM <- rep(1,times=length(No))
DQ <- rep(rep(seq(0,15,1),each=6),times=3)
V <- rep(seq(100,2100,100),each=96)
R <- sort(replicate(3, sample(5000:6000,96)))
df <- data.frame (No,AC,AR,AM,DQ,V,R)
为了组织数据,我使用 dplyr
包
library(dplyr)
df_1 <- df %>% group_by(AR,AC) %>% arrange(No)
根据 V
列更改拆分数据我使用基本函数;
split <- split(df_1,rep(1:96,each=21))
问题是我可以用 dplyr
或 tidyr
做到这一点吗?而分裂后
如何分离奇数和偶数数据?
根据讨论,您可以立即使用 filter
,无需先 arrange
:
even <- df %>% filter(No %% 2 == 0)
odd <- df %>% filter(No %% 2 == 1)
我对 data.frame 进行了排序,其中一列每 21 行重复一次。即 df
V
列
df
是这样的;
set.seed(1)
No <- rep(seq(0,95,1),times=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
AR <- rep(rep(c(256,320,384),each=2),times=length(No)/6)
AM <- rep(1,times=length(No))
DQ <- rep(rep(seq(0,15,1),each=6),times=3)
V <- rep(seq(100,2100,100),each=96)
R <- sort(replicate(3, sample(5000:6000,96)))
df <- data.frame (No,AC,AR,AM,DQ,V,R)
为了组织数据,我使用 dplyr
包
library(dplyr)
df_1 <- df %>% group_by(AR,AC) %>% arrange(No)
根据 V
列更改拆分数据我使用基本函数;
split <- split(df_1,rep(1:96,each=21))
问题是我可以用 dplyr
或 tidyr
做到这一点吗?而分裂后
如何分离奇数和偶数数据?
根据讨论,您可以立即使用 filter
,无需先 arrange
:
even <- df %>% filter(No %% 2 == 0)
odd <- df %>% filter(No %% 2 == 1)