очень простой стержень dataframe в r - PullRequest
0 голосов
/ 05 ноября 2018

Может кто-нибудь подсказать, пожалуйста, как перейти с фрейма данных df на фрейм данных, требуемый в приведенном ниже примере воспроизводимого кода, пожалуйста? Это в основном просто стержень. Спасибо!

id <- c(1, 2)
x <- c('a', 'b')
y <- c('c', 'd')

df <- data.frame(id, x, y)

head(df)

c1 <- c('id', 'x', 'y')
c2 <- c('1', 'a', 'c')
c3 <- c('2', 'b', 'd')

desired <- data.frame(c1, c2, c3)

head(desired)

Это похоже на работу (см. Также здесь ):

test <- transpose(df)
colnames(test) <- rownames(df)
rownames(test) <- colnames(df)

а это лучший подход?

1 Ответ

0 голосов
/ 05 ноября 2018

Один лайнер будет

setNames(data.frame(names(df), t(df)), paste0("c", 1:3))

Более общее решение, без жесткого кодирования вектора 1:3 равно

setNames(data.frame(names(df), t(df)), paste0("c", seq_along(names(df))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...