Разделение содержимого ячейки на новые строки в R - PullRequest
1 голос
/ 21 февраля 2020

просто гоняясь за решением, чтобы разделить содержимое ячейки на строки, а не на столбцы. (Я рассмотрел использование отдельной команды).

Начальный формат данных:

> Orders[c(1,2),]
  ID             Products 
     12345       c("Product X, "Product Y", "Product Z")       
     12346       c("Product X, "Product Y")   

Попытка заставить его выглядеть так:

> print(Amended_Orders)
  ID             Products 
     12345       Product X
     12345       Product Y
     12345       Product Z     
     12346       Product X   
     12346       Product Y   

Есть идеи? Ура х

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

В tidyverse мы можем unnest столбец list для расширения строк

library(tidyr)
library(dplyr)
df1 %>% 
     unnest(Products)
# A tibble: 5 x 2
#     ID Products
#  <dbl> <chr>   
#1 12345 a       
#2 12345 b       
#3 12345 c       
#4 12346 x       
#5 12346 y    

data

df1 <- structure(list(ID = c(12345, 12346), Products = list(c("a", "b", 
"c"), c("x", "y"))), row.names = c(NA, -2L), class = "data.frame")
0 голосов
/ 21 февраля 2020
setNames(data.frame(rep(d$ID, lengths(d$Products)), unlist(d$Products)), names(d))
#OR
do.call(rbind, lapply(asplit(d, 1), function(x) data.frame(lapply(x, unlist))))

Данные

d = structure(list(ID = c(12345, 12346), Products = list(c("a", "b", 
"c"), c("x", "y"))), row.names = c(NA, -2L), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...