我有一个288行4列的数据帧。我只需要价值观行12,24,36。。。,288也就是说有规律的间隔12,我该怎么做?
您可以使用dplyr
包中的slice()
函数
p.S:下次请提供一个可重复的数据问题;代码,以便其他人可以提供帮助。点击此处查看更多:如何制作一个伟大的R可复制示例?
library(tibble)
library(dplyr)
chosen_vect <- seq(12, 120, 12)
chosen_vect
#> [1] 12 24 36 48 60 72 84 96 108 120
iris %>%
rownames_to_column() %>% # to test if we slice the right rows
slice(chosen_vect)
#> rowname Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1 12 4.8 3.4 1.6 0.2 setosa
#> 2 24 5.1 3.3 1.7 0.5 setosa
#> 3 36 5.0 3.2 1.2 0.2 setosa
#> 4 48 4.6 3.2 1.4 0.2 setosa
#> 5 60 5.2 2.7 3.9 1.4 versicolor
#> 6 72 6.1 2.8 4.0 1.3 versicolor
#> 7 84 6.0 2.7 5.1 1.6 versicolor
#> 8 96 5.7 3.0 4.2 1.2 versicolor
#> 9 108 7.3 2.9 6.3 1.8 virginica
#> 10 120 6.0 2.2 5.0 1.5 virginica
创建于2018-10-31由reprex包(v0.2.1.9000(
除了上面的答案,您还可以尝试索引方法中的排序。
df <- data.frame(a = 1:288, b = sample(LETTERS, 288, replace = T))
# new data frame
df1 <- df[seq(12,288,12),]
df1