Как создать фрейм данных со строками открытия и закрытия в виде столбцов - PullRequest
0 голосов
/ 21 октября 2019

Из этого примера фрейма данных:

dframe <- data.frame(status = c("open","close","open","close"), name = c("Google","Google","Amazon","Amazon"), id = c(1,1,2,2), volume1 = c(2,3,1,2), othercol = c(5.3,1,3,7))

Как можно создать новый фрейм данных со столбцами open и close в виде столбцов? Вот пример ожидаемого вывода:

data.frame(name = c("Google", "Amazon"), id = c(1,2), volume1_open = c(2,1), volume1_close = c(3,2), othercol_open = c(5.3,3), othercol_close = c(2,7))


> name id volume1_open volume1_close othercol_open othercol_close
>         Google  1            2             3           5.3              2
>         Amazon  2            1             2           3.0              7

1 Ответ

2 голосов
/ 21 октября 2019

Используя data.table, вы можете использовать dcast для преобразования ваших данных в широкий формат:

Код

setDT(dframe)
dcast(dframe, name + id ~ status, value.var = c('volume1', 'othercol'))

Результат

     name id volume1_close volume1_open othercol_close othercol_open
1: Amazon  2             2            1              7           3.0
2: Google  1             3            2              1           5.3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...