2017-12-13 11 views
1

の値に基づいて、次のn個の行を選択するには、私は、同じ列のヘッダに基づいてサブセットしたいデータフレームの列を有しています。それは本質的に次のようになります。私は何をしたいかサブセット列と同じ列

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 

はこれで終わるために、異なる「ヴァール」の見出しに基づいて、この列をサブセットすることです:店へ

[1] Var: A 
     1 
     3 
     5 
[2] Var: B 
     2 
     4 
     6 
     7 

そして最後にそれらは異なる変数である。

私は列内の特定の値の前または後に、n個の行を選択する方法を説明する例を見てきましたが、それは動作しませんので、残念ながら私が抽出したい変数のほとんどは、異なる長さのものです。これは、比較的簡単な方法で行うことができる方法はありますか?

+0

を見つけるためにgreplを使用することができます!それは完璧に働いた! – Bjorn

答えて

2

あなたは感謝@Sotos 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