Как я могу отменить результат pivot более широкий в R - PullRequest
2 голосов
/ 25 марта 2020

Кто-нибудь знает, как удалить список из функции pivot_wider в R? Следующий код возвращает список в каждой ячейке столбца A и список в каждой ячейке столбца B. В идеале мне бы хотелось, чтобы пункт (например, оранжевый) повторялся для каждого наблюдения в ячейках списка A и B.

library(tidyverse)
set.seed(111)
# What I have
data_bad <- tibble(
  Item = rep(c("Orange", "Lemon", "Sugar", "Parsley"),each = 6),
  Source = rep(c("A","A","A","B","B","B"), times = 4),
  Value = runif(length(Item))
) %>%
  pivot_wider(names_from = Source, values_from = Value, values_fn = list(value = list))

# What I'd like
data_good <- tibble(
  Item = rep(c("Orange", "Lemon", "Sugar", "Parsley"),each = 6),
  A = runif(n = length(Item)),
  B = runif(n = length(Item))
)

Спасибо за помощь!

1 Ответ

1 голос
/ 25 марта 2020

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

library(dplyr)
library(tidyr)
data_bad %>% 
   unnest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...