У меня есть кадр данных, который выглядит следующим образом:Перестройка моего кадра данных и добавление флага
df <-
ID TIME IPREDP IPREDM
1 0.5 10 5
1 1.0 15 7
2 0.7 8 2
Я хочу, чтобы изменить свои данные и свернуть IPREDP
и IPREDM
столбцов в один столбец под названием IPRED
и добавить флаг под названием DVID
для каждого и избавиться от оригинальных колонок IPREDP
и IPREDM
. Таким образом, выход должен быть таким:
dfout <-
ID TIME DVID IPRED
1 0.5 1 10
1 0.5 2 5
1 1.0 1 15
1 1.0 2 7
2 0.7 1 8
2 0.7 2 2
Как я могу достичь этого в R самым быстрым способом?
С tidyr и dplyr, 'ДФ%>% собираются (DVID, IPRED, IPREDP: IPREDM)%>% мутировать (DVID = а .integer (factor (DVID, levels = c ('IPREDP', 'IPREDM')))) ' – alistaire
с использованием библиотеки (reshape2),' melt (df, measure.vars = c ("IPREDP", "IPREDM"), value.name = "IPRED") ' – dww
В базе R -' reshape (df, idvar = c ("ID", "TIME"), direction = "long", variable = 3: 4, v.names = "IPRED ", timevar =" DVID ")' – thelatemail