R - 如何逐行切换索引

时间:2016-03-24 19:34:39

标签: r indexing rows col

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

不确定我是否理解你的问题,但由于你的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