来自旧数据帧子集的每第 n 行的新数据帧

时间:2021-05-04 14:25:42

标签: r

我正在尝试通过从旧数据框中选择每 7 行来创建一个新数据框。具体来说,我想要子集“Primer”、“E”和“R2”中的每第 7 行

当前(旧)数据框如下所示:

print(total)
  Conc Primer   Ct1   Ct2   mean     slope          E        R2
1  1.00000    TBP 26.58 26.04 26.310 -1.588132  3.2625604 0.5994649
2  0.20000    TBP 28.46 28.32 28.390 -1.588132  3.2625604 0.5994649
3  0.04000    TBP 31.49 31.14 31.315 -1.588132  3.2625604 0.5994649
4  0.00800    TBP 33.90 32.18 33.040 -1.588132  3.2625604 0.5994649
5  0.00160    TBP 34.81 38.72 36.765 -1.588132  3.2625604 0.5994649
6  0.00032    TBP    NA    NA    NaN -1.588132  3.2625604 0.5994649
7  1.00000 EBF1_A 28.11 27.23 27.670 -0.791270 17.3565499 0.7927938
8  0.20000 EBF1_A 29.25 29.25 29.250 -0.791270 17.3565499 0.7927938
9  0.04000 EBF1_A 32.04 30.90 31.470 -0.791270 17.3565499 0.7927938
10 0.00800 EBF1_A 31.96 32.49 32.225 -0.791270 17.3565499 0.7927938
11 0.00160 EBF1_A 32.42 32.68 32.550 -0.791270 17.3565499 0.7927938
12 0.00032 EBF1_A    NA    NA    NaN -0.791270 17.3565499 0.7927938
13 1.00000 EBF1_B 27.80 27.72 27.760 -1.097899  7.1438682 0.7634541
14 0.20000 EBF1_B 29.17 29.45 29.310 -1.097899  7.1438682 0.7634541
15 0.04000 EBF1_B 31.89 32.07 31.980 -1.097899  7.1438682 0.7634541
16 0.00800 EBF1_B 32.76 32.76 32.760 -1.097899  7.1438682 0.7634541
17 0.00160 EBF1_B    NA    NA    NaN -1.097899  7.1438682 0.7634541
18 0.00032 EBF1_B    NA    NA    NaN -1.097899  7.1438682 0.7634541
19 1.00000 EBF2_A 29.28 29.50 29.390 -6.145888  0.4544889 0.6973744
20 0.20000 EBF2_A 31.69 30.70 31.195 -6.145888  0.4544889 0.6973744
21 0.04000 EBF2_A 34.00 34.75 34.375 -6.145888  0.4544889 0.6973744
22 0.00800 EBF2_A 35.24 35.20 35.220 -6.145888  0.4544889 0.6973744
23 0.00160 EBF2_A 36.04 38.33 37.185 -6.145888  0.4544889 0.6973744
24 0.00032 EBF2_A    NA    NA    NaN -6.145888  0.4544889 0.6973744

我想从学习如何从数据帧子集中提取每 7 个元素开始,然后才想到将其转换为数据帧的想法。我的想法是使用 total[seq(1, nrow(total$Primer), 7), ] 打印此数据帧子集的第 7 个元素,但它只返回 Error in seq.default(1, nrow(total$Primer), 7) : 'to' must be of length 1

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以定义一系列 7 的倍数:

sequence <- seq(0, 700, by = 7)

slice 按该顺序排列的数据框:

library(dplyr)
df %>%
  slice(sequence)

如果您只对切片某些列感兴趣,select 这些列:

df %>%
  slice(sequence) %>%
  select(c(Primer, E, R2))
相关问题