R reshape2 - преобразовать 6 столбцов в 2 столбца - PullRequest
0 голосов
/ 24 ноября 2018

Я очень плохо знаком с программированием на R и стековым потоком, это для школьной лаборатории, пожалуйста, прости меня, если я не правильно задаю вопросы ..

Мне дан набор данных с этими столбцами:

ID  |  X_B_Rate  |  X_D_Rate  |  Y_B_Rate  |  Y_D_Rate  | Z_B_Rate  | Z_D_Rate

Как видите, столбцы как бы повторяются, задача состоит в том, чтобы написать R-код и преобразовать столбцы в:

ID  | x_or_y  |  B_or_D  |  Rate

Я пробовал функцию melta () в reshape2функции, но я не могу понять, как с ним работает RegExp

test <- melt(df, id.vars=c('ID'), measure.vars=grep('X$',colnames(df)), 
variable.name='x_or_y', value.name='Rate')

Я знаю, что код определенно неправильный ... Я только получаю список идентификаторов, я не могу показатьсячтобы понять, как RegExp работает с функцией melt (), и я попытался погуглить «Reshape2 melt ()», но везде есть только очень короткий документ.

Я был бы очень признателен, если бы кто-нибудь мог сказать мне, чтоя делаю что-то не так или, по крайней мере, указываете мне правильное направление к нужному документу: (

Заранее спасибо!

1 Ответ

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

Это должно сделать это:

yourdf %>% 
  gather("id","value",1:ncol(.))

Затем вы можете переименовать ваши столбцы так, как пожелаете.РЕДАКТИРОВАТЬ: Используя reshape2, вы можете сделать что-то вроде этого:

yourdf%>% 
  mutate(ID=row_number()) %>% 
  reshape2::melt(id.vars=c("ID"))

Я использовал свои собственные данные, чтобы проиллюстрировать, как ваш вопрос не предоставляет пример данных.

...