2016-06-09 66 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)] 
相關問題