【问题标题】:Create a dataframe with the values of rows 12, 24, 36, ..., 288使用第 12、24、36、...、288 行的值创建一个数据框
【发布时间】:2018-10-30 20:12:18
【问题描述】:

我有一个包含 288 行和 4 列的数据框。我只需要第12、24、36、...、288行的值,也就是12的固定间隔,怎么办?

【问题讨论】:

    标签: r dataframe rows reshape


    【解决方案1】:

    您可以使用dplyr 包中的slice() 函数

    P.S:下次请提供可重现的数据和代码问题,以便其他人可以提供帮助。在此处查看更多信息:How to make a great R reproducible example?

    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
    

    reprex package (v0.2.1.9000) 于 2018 年 10 月 31 日创建

    【讨论】:

      【解决方案2】:

      除了上面的答案,你还可以尝试在索引方法中排序。

      df <- data.frame(a = 1:288, b = sample(LETTERS, 288, replace = T))
      
      # new data frame
      df1 <- df[seq(12,288,12),]
      
      df1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        相关资源
        最近更新 更多