我有一个数据框,其中包含名为“row”,“col”和“time”的列。 行的值为A到H,Col的值为1到12.时间值为“5,10,15,20,25,30。”
所以我想制作包含相同行数和行数的不同数据帧或矢量集。 col但不同的时间。因此,最终会有96个不同的数据框架或矢量集合具有匹配的行和列,但时间和活动的值不同。
以下是我的数据集示例。
row col time activity day
1 A 1 5 33 1
2 B 1 5 36 1
3 C 1 5 53 1
4 D 1 5 40 1
5 E 1 5 91 1
6 F 1 5 80 1
7 G 1 5 89 1
8 H 1 5 82 1
97 A 1 10 38 1
98 B 1 10 92 1
99 C 1 10 47 1
100 D 1 10 57 1
101 E 1 10 84 1
102 F 1 10 85 1
103 G 1 10 96 1
以下是我想要的样本......
row col time activity day
1 A 1 5 33 1
2 A 1 10 38 1
3 A 1 15 66 1
等等
谢谢〜
答案 0 :(得分:2)
如果我理解正确,您希望将数据帧拆分为子数据帧,其中每个子数据帧具有相同的rows
和Col
值。您可以使用split
:
df.split <- with(df, split(df, list(rows, Col)))
head(df.split, 3) # showing 3 of 96 sub data frames
制作
$A.1
rows Col time activity
1 A 1 5 26
97 A 1 10 91
193 A 1 15 25
289 A 1 20 2
385 A 1 25 95
481 A 1 30 35
$B.1
rows Col time activity
2 B 1 5 64
98 B 1 10 71
194 B 1 15 72
290 B 1 20 45
386 B 1 25 52
482 B 1 30 43
$C.1
rows Col time activity
3 C 1 5 49
99 C 1 10 27
195 C 1 15 35
291 C 1 20 16
387 C 1 25 9
483 C 1 30 94
以下是我使用的玩具数据:
rows <- LETTERS[1:8]
Col <- 1:12
time <- (1:6) * 5
df <- expand.grid(rows=rows, Col=Col, time=time)
df$activity <- sample(1:100, nrow(df), rep=T)