Как применить несколько имен строк одновременно - PullRequest
1 голос
/ 21 апреля 2020

Допустим, у меня есть кадр данных, который выглядит следующим образом:

> df
 Age       Sex       Height        Width        Weight 
 ..         ..        ..            ..            ..
 ..         ..        ..            ..            ..
 ..         ..        ..            ..            ..

У меня также есть матрица 5x5:

> M
PC1       PC2       PC3        PC4        PC5       
1.9747188 1.0135635 0.935994  0.73762825 0.60932788 
0.5570735 0.1467587 0.885155  0.07772792 0.05304007 
0.8289874 0.9067153 0.959755  0.90671530 0.95975536 
0.3563735 0.7038322 0.828987  0.90671530 0.95975536
0.9359947 0.7376282 0.60932   0.90671530 0.95975536 

Я пытаюсь взять имена столбцов из одного кадра данных и сделать их имена строк другого. Чтобы у меня было что-то вроде этого

         PC1       PC2       PC3        PC4        PC5       
Age    1.9747188 1.0135635 0.935994  0.73762825 0.60932788 
Sex    0.5570735 0.1467587 0.885155  0.07772792 0.05304007 
Heigh  0.8289874 0.9067153 0.959755  0.90671530 0.95975536 
Width  0.3563735 0.7038322 0.828987  0.90671530 0.95975536
Weight 0.9359947 0.7376282 0.60932   0.90671530 0.95975536 

Но я не могу просто переименовать каждую строку вручную, потому что я помещаю ее в функцию, поэтому мне нужен метод, который обобщает это.

Любые предложения оценены

1 Ответ

2 голосов
/ 21 апреля 2020

Мы можем создать функцию

f1 <- function(dat1, dat2) {
         stopifnot(ncol(dat1) == nrow(dat2))
         row.names(dat2) <- colnames(dat1)
         dat2
 }

f1(df, M)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...