Я относительный новичок в R и пытаюсь переделать свои данные в длинный формат из широкого формата и иметь проблемы. Я думаю, что моя проблема может быть связана с тем, что сделал data.frame из файла data.frame, который я создал в R, получив средние значения большого data.frame в другой файл data.frame.Реформирование проблем в R: моя измененная форма данных изменяет 3 переменные на 1
То, что я сделал это создал пустой data.frame (NDF):
ndf <- data.frame(matrix(ncol = 0, nrow = 3))
Затем используется lapply, чтобы получить средства из большого data.frame (СОЛ) в отдельные столбцы в новых данных .frame, с годом используются с большим data.frame:
ndf$Year <- names(ldf)
ndf$col1 <- lapply(ldf, function(i) {mean(i$col1)})
ndf$col2 <- lapply(ldf, function(i) {mean(i$col2)})
etc.
расплавленный функция reshape2 не работает, по-видимому, потому что есть неатомарная «мера» столбцы.
Для использования функции Reshape базы я использовал код:
reshape.ndf <- reshape(ndf,
varying = list(names(ndf)[2:7]),
v.names = "cover",
timevar = "species",
times = names(ndf[2:7]),
new.row.names = 1:1000,
direction = "long")
Мой выход тогда в основном только с использованием первой строки для переменных. Так что мой широкий data.frame выглядит так (извините за странные имена):
Year Cladonia.portentosa Erica.tetralix Eriophorum.vaginatum
1 2014 11.75 35 55
2 2015 15.75 25.75 70
3 2016 22.75 5 37.5
И долго data.frame выглядит следующим образом:
Year species cover id
1 2014 Cladonia.portentosa 11.75 1
2 2015 Cladonia.portentosa 11.75 2
3 2016 Cladonia.portentosa 11.75 3
4 2014 Erica.tetralix 35.00 1
5 2015 Erica.tetralix 35.00 2
6 2016 Erica.tetralix 35.00 3
Если в колонке «крышка» должна иметь значение с каждого года, помещенного в ячейку с соответствующим годом.
Пожалуйста, кто-нибудь скажет мне, где я ошибся !?
Как это можно использовать 'names (ndf [2: 7])' когда в ваших широких данных всего 4 столбца? –
Вы пробовали 'tidyr :: gather()'? если нет, проверьте это. это в основном преемник reshape2. – roman
42 - Я только показал часть набора данных, я пытался уменьшить путаницу, но забыл изменить код, чтобы представить то, что я показал. – dunnns