R中是否有一种简单的方法(即不使用for循环)根据循环相同N+1
个数z
次的列来中断数据帧?
以下是一个例子:
column1: 0, 1, 2, 3, ..., N, 0, 1, 2, 3, ..., N, ......, 0, 1, 2, 3, ..., N
column2: (randomly distributed numbers of same length as column1)
我希望**z**
数据框看起来如下所示:
DF1:
column11: 0, 1, 2, 3, ..., N
column21: (randomly distributed numbers of same length as column1a)
.
.
.
DFZ:
column1**z**: 0, 1, 2, 3, ..., N
column2**z**: (randomly distributed numbers of same length as column1z)
另外,当我说我想要**z**
个数据帧时,我真的只想要一种方法来使用第一个N+1
数据点,第二个N+1
数据点,等等。
答案 0 :(得分:0)
split( dfrm , cumsum( c(0, diff(dfrm$col1)) < 0) )
split
返回一个对象列表,在本例中为data.frames,由第二个参数的唯一值分隔。每次遇到col1值“drop”时,cumsum策略会递增1。
经过测试:
N <- 5
dfrm <- data.frame( col1 = rep(0:N, 5) , col2 = runif(30) )