проблема перестановки моей матрицы 2x2 простым способом в R - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь превратить

df<-matrix(1:4,nrow = 2,ncol = 2)
df
     [,1] [,2]
[1,]    1    3
[2,]    2    4

в

matrix(c(2,4,1,3),nrow = 1,ncol = 4)
2    4    1    3 

, чтобы я мог запустить его через for l oop до rbind множества записей.

Я пытался

cbind(df[row 2,],df[row 1,])

, но это не работает. Есть ли простой способ сделать это, который не потребует от меня отделить матрицу и затем снова собрать ее вместе?

Ответы [ 4 ]

2 голосов
/ 29 января 2020

Превращение комментария в ответ, четвертый вариант -

rev(t(m[, ncol(m):1]))
# [1] 2 4 1 3

с

m <- matrix(1:4, 2)
2 голосов
/ 29 января 2020

Мы можем использовать

t(c(t(df[nrow(df):1, ])))
#      [,1] [,2] [,3] [,4]
#[1,]    2    4    1    3
2 голосов
/ 29 января 2020

Вот другой способ. Без вызова matrix он возвращает вектор, а не матрицу.

df <- matrix(1:4, 2)

matrix(c(t(df[nrow(df):1,])), 1)
#     [,1] [,2] [,3] [,4]
#[1,]    2    4    1    3
1 голос
/ 29 января 2020

Может быть, вы можете попробовать код ниже

r <- unlist(rev(data.frame(t(df))))

или

r <- do.call(c,rev(split(df,1:nrow(df))))

или

r <- unlist(rev(split(df,1:nrow(df))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...