Dplyr left_join() по именам ростов

Я использую dplyrs функцию left_join для объединения двух data.frames.

Теперь я хотел бы объединить их вручную, используя rownames в левом data.frame и соответствующее имя столбца в правильном data.frame left_join, но я получаю ошибку:

Ошибка: неожиданно '=' в "dplyr:: left_join (x.tsummary, sto.info, by = c (rownames (x.tsummary) ="

Мой код

> dplyr::left_join(x.tsummary, sto.info, by = c(rownames(x.tsummary) = 'Symbol'))

Возможно ли это? В документации говорится, что я должен указывать имена столбцов, но было бы здорово, если бы я мог присоединиться к именам ростов для левого data.frame.

Ответ 1

Помогает ли это?

dplyr::left_join(x.tsummary %>%
                                    mutate(Symbol = rownames(x.tsummary)),
                                 sto.info,
                                 by = 'Symbol')

Ответ 2

dplyr теперь рекомендует использовать tibble::rownames_to_column (dplyr также имеет функцию add_rownames, которая устарела в пользу tibble::rownames_to_column). Например:

library(tibble)
library(dplyr)
left_join(rownames_to_column(x.tsummary), sto.info, by = ("rowname" = "Symbol"))