【发布时间】:2020-10-26 19:51:22
【问题描述】:
我有一个具有可变数量或行的数据框,并希望按附近的行组将其拆分为数据框列表(或只是多个 dfs)。应该分组在一起的附近行可以通过变量列来理解,其中每组由数字上彼此相邻的样本组成。例如:第 1-9 行是一组,第 10-12 行是第 2 组,等等。变量列中内容的确切身份将与黑白数据集不一致。
这是df:
> conseq_high
variable 6 7 8 9 10 11 12 13 14 position rnum
1 pep_14 L L L L Q L S C S 3 1
2 pep_15 L L L Q L S C S Y 4 2
3 pep_16 L L Q L S C S Y A 5 3
4 pep_17 L Q L S C S Y A G 6 4
5 pep_18 Q L S C S Y A G Q 7 5
6 pep_19 L S C S Y A G Q F 8 6
7 pep_20 S C S Y A G Q F R 9 7
8 pep_21 C S Y A G Q F R V 10 8
9 pep_22 S Y A G Q F R V I 11 9
10 pep_136 E L K V E D P F Y 19 10
11 pep_137 L K V E D P F Y W 20 11
12 pep_138 K V E D P F Y W V 21 12
13 pep_164 V S V G L V F L F 26 13
14 pep_165 S V G L V F L F L 27 14
15 pep_166 V G L V F L F L Q 28 15
16 pep_175 H R L R G K L R A 30 16
17 pep_176 R L R G K L R A E 31 17
18 pep_223 Y N W L H R R L A 36 18
19 pep_224 N W L H R R L A G 37 19
我已尝试获取必须按以下方式分组的每组行中最后一行的位置:
#subset out individual groups of peptides
as_vector(conseq_high$position) -> seq2
xy1 <- c(diff(seq2),0)
which(xy1 !=1) -> grp_ids #these are the ending positions of each group of peptides
> grp_ids
[1] 9 12 15 17 19
从这里开始,实际上我遇到了问题,实际上是我想要的行组的子集。我尝试使用拆分和拼接但没有成功。有什么建议吗?
提前致谢!
【问题讨论】: