【问题标题】:R - how to switch rows by row indexR - 如何按行索引切换行
【发布时间】:2016-07-12 12:58:49
【问题描述】:

假设我有一个包含许多列和行的数据集。 R 是否有能力引用行,以便我可以像这样切换行?

df1[row:1] <- df1[row:2]

【问题讨论】:

    标签: r indexing rows col


    【解决方案1】:

    创建一个你喜欢的行索引。也许使用order 创建一个。然后应用它...

    > df <- head(mtcars, 3)
    > df
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
    Mazda RX4     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
    Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
    Datsun 710    22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
    
    > df[c(3,1,2), ]
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
    Datsun 710    22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
    Mazda RX4     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
    Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
    
    > df[order(df$wt), ]
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
    Datsun 710    22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
    Mazda RX4     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
    Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
    

    【讨论】:

      【解决方案2】:

      不确定我是否理解您的问题,但由于您的 SO 分数非常低,我还假设您是 R 的初学者。 要在 R 中索引 df 的行,可以使用以下语法:df_name[row_nr,]

      这意味着如果你有以下 df:

      df1  <- head(ChickWeight)
      df1
      
        weight Time Chick Diet
      1     42    0     1    1
      2     51    2     1    1
      3     59    4     1    1
      

      您可以使用第 2 行的值覆盖第 1 行,如下所示:

      df1[1,] <- df1[2,]
      
      
        weight Time Chick Diet
      1     51    2     1    1
      2     51    2     1    1
      3     59    4     1    1
      

      如果要切换到第 1 行和第 2 行,则需要使用辅助/临时变量:

      tmp_row  <- df1[1,]
      df1[1,]  <- df1[2,]
      df1[2,]  <- tmp_row
      
        weight Time Chick Diet
      1     51    2     1    1
      2     42    0     1    1
      3     59    4     1    1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2018-04-30
        相关资源
        最近更新 更多