R:如何将rev()应用于特定行

时间:2016-06-09 22:52:14

标签: r

这是我的矩阵:

df <- data.frame(matrix(1:25,5))

    X1 X2 X3 X4 X5
 1  1  6 11 16 21
 2  2  7 12 17 22
 3  3  8 13 18 23
 4  4  9 14 19 24
 5  5 10 15 20 25

我想将rev()应用于第1行#3和第5行的某些特定行。 这是我想得到的结果:

    X1 X2 X3 X4 X5
 1  21 16 11  6  1
 2   2  7 12 17 22
 3  23 18 13  8  3
 4   4  9 14 19 24
 5  25 20 15 10  5

我知道如何对每一行使用rev()来获得反转系列。例如,rev(df [1,])适用于每一行。请告诉我如何将rev()应用于某些特定行并获得所需的矩阵。

感谢。

2 个答案:

答案 0 :(得分:5)

这可以通过提取所需的行,将它们反转,然后将它们写回到同一位置来实现:

df[c(1,3,5),]=rev(df[c(1,3,5),])

答案 1 :(得分:1)

或使用data.table

library(data.table)
setDT(df)[c(1,3, 5), names(df) := rev(.SD)]