Модифицируйте фрейм данных, преобразовывая имена столбцов в фактор - PullRequest
2 голосов
/ 29 апреля 2020

Я анализирую некоторые данные, структурированные как "df" в примере, и мне нужно преобразовать их в нечто вроде объекта "example" ниже:

a<- c(1:3)
b<- c(1:3)
c<- c(1:3)

df<- data.frame(a, b, c)

col1<- c("a","a","a", "b", "b", "b", "c", "c", "c")
col2<- rep(1:3,3)

example<- data.frame(col1, col2)

Ответы [ 3 ]

1 голос
/ 29 апреля 2020

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

library(dplyr)
library(tidyr)
df %>% 
    pivot_longer(cols = everything())
1 голос
/ 29 апреля 2020

Быстрое base R решение - stack:

stack(df)
  values ind
1      1   a
2      2   a
3      3   a
4      1   b
5      2   b
6      3   b
7      1   c
8      2   c
9      3   c
0 голосов
/ 30 апреля 2020

Вы также можете использовать gather() из tidyr пакета

gather(df, colnames(df), key = "col1", value = "col2")

key и value служит именами новых столбцов в результирующем кадре данных. Используйте в tidyverse синтаксис следующим образом

df %>%
   gather(colnames(df), key = "col1", value = "col2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...