我在数据框中有一个列,我希望根据同一列中的标题进行子集化。它基本上看起来像这样:
df <- data.frame(col = c("Var: A", "1", "3", "5", "Var:B", "2", "4", "6", "7", "Var: C", "7", "1"))
[df]
col
1 Var: A
2 1
3 3
4 5
5 Var:B
6 2
7 4
8 6
9 7
10 Var: C
11 7
12 1
我想要做的是根据不同的'Var'标题对此列进行子集化,最后得出结论:
[1] Var: A
1
3
5
[2] Var: B
2
4
6
7
最后将它们存储在不同的变量中。
我已经查看了解释如何在列中的特定值之前或之后选择n行的示例,但遗憾的是,我想要提取的大多数变量具有不同的长度,因此无效。有什么办法可以用相对简单的方式完成吗?
答案 0 :(得分:2)
您可以使用grepl
查找Vars
和拆分,即
split(df, cumsum(grepl('Var', df$col)))
给出,
$`1` col 1 Var: A 2 1 3 3 4 5 $`2` col 5 Var:B 6 2 7 4 8 6 9 7 $`3` col 10 Var: C 11 7 12 1