2016-06-09 67 views
2

这里是我的矩阵:R:如何应用REV()到特定行

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 

我想在列#1#3,#5应用REV()某些特定行。 这里是我想要得到的结果是:

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()应用到某些特定的行并获得所需的矩阵。

谢谢。

回答

5

这是通过提取所需的行,扭转他们,然后写他们回到同一位置:

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

或者使用data.table

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