Я пробовал решения из нескольких постов в stackoverflow, но безуспешно.Если вы думаете, что это дубликат, это не так.Я уже упоминал этот пост и этот пост.
> head(t)
locality_id observer_id observation_date total_duration total_dist total_area
1 L1366429 obsr529319 2017-01-12 100 1.609 0
2 L1366429 obs613305 2017-10-09 120 2.000 0
3 L1366429 obsr644174 2017-11-01 90 1.000 0
4 L1619491 obs729967 2017-03-27 240 2.000 0
5 L1845345 obs360918 2017-09-30 120 5.000 0
6 L1845345 obs575633 2017-10-27 45 0.300 0
localities species observation loc_type prot_type num_observers
1 Eravikulam National Park Ficedula nigrorufa 1 H Traveling 7
2 Eravikulam National Park Ficedula nigrorufa 0 H Traveling 1
3 Eravikulam National Park Ficedula nigrorufa 1 H Traveling 2
4 Munnar Ficedula nigrorufa 0 H Traveling 8
5 Nelliampathy Hills--General Area Ficedula nigrorufa 0 H Traveling 1
6 Nelliampathy Hills--General Area Ficedula nigrorufa 0 H Traveling 3
Abundance
1 1
2 0
3 1
4 0
5 0
6 0
Мне нужнотранспонировать значения в столбце expression_date как несколько столбцов и добавить значения total_duration в один и тот же.Все решения, которые я пробовал, заканчиваются тем, что я получаю 0 или 1 с.
Решения, протестированные с Пост 1
library(data.table)
tcast <- dcast(t, locality_id + localities + species +observer_id
~ observation_date, value.var="total_duration")
Aggregate function missing, defaulting to 'length'
В итоге я получаю фрейм данных с 0 и 1,
Решения, опробованные из Пост 2
> colnames(t)
[1] "locality_id" "observer_id" "observation_date" "total_duration" "total_dist"
[6] "total_area" "localities" "species" "observation" "loc_type"
[11] "prot_type" "num_observers" "Abundance"
s <- c("locality_id","observation_date","total_duration")
> any(duplicated(t[s]))
[1] TRUE
> library(splitstackshape)
> melteddata <- melt(getanID(t, s), c(".id", s))
'measure.vars' [observer_id, total_dist, total_area, localities, ...] are not all of the same type. By order of hierarchy, the molten data value column will be of type 'character'. All measure variables not of type 'character' will be coerced too. Check DETAILS in ?melt.data.table for more on coercion.
> fin <- dcast(melteddata, .id + observation_date ~ total_duration)
Aggregate function missing, defaulting to 'length'
Помимо вышеуказанной ошибки, второе решение дает мне странную таблицу.
Пожалуйста, помогите!Последние несколько дней боролся с этим!