Я конвертирую r фрейм данных из длинного в широкий формат со значениями NA
.И пытается добавить новые строки, которые выполняют операции, которые «пропускают» значения NA
.
Я могу использовать spread()
, но в конечном итоге хочу выполнить операции с каждым измерением, которое собирается за несколько лет.В приведенном ниже примере это может содержать два или более значений.Например, meas == 4
содержит три значения, в то время как другие измерения содержат два:
df <- data.frame(meas=c(1,1,1,2,2,2,3,3,3,4,4,4),
year=rep(c("y2016", "y2017","y2018")),
value=c(1,2,NA,NA,1,4,1,NA,3,1,5,10))
spread(df, year, value)
meas y2016 y2017 y2018
1 1 1 2 NA
2 2 NA 1 4
3 3 1 NA 3
4 4 1 5 10
В конечном итоге я ищу что-то среднее между длинным и широким набором данных, как показано здесь:
meas year1 year2 value1 value2
1 1 2016 2017 1 2
2 2 2017 2018 1 4
3 3 2016 2018 1 3
4 4 2016 2017 1 5
5 4 2017 2018 5 10