Я пытаюсь создать столбец во фрейме данных, содержащий количество значений, использованных в средней функции для каждой строки.
Сначала у меня был фрейм данных df примерно так:
df <- data.frame(tree_id=rep(c("CHC01", "CHC02"),each=8),
rad=(c(rep("A", 4),rep("B", 4), rep("A", 4),
rep("C", 4))), year=rep(2015:2018, 4),
growth= c(NA, NA, 1.2, 3.2, 2.1, 1.5, 2.3, 2.7, NA, NA, NA, 1.7, 3.5, 1.4, 2.3, 2.7))
Затем я создал новый фрейм данных с именем avg_df , содержащий только средние значения рост сгруппированы по tree_id и год
library(dplyr)
avg_df <- df%>%
group_by(tree_id, year, add=TRUE)%>%
summarise(avg_growth=mean(growth, na.rm = TRUE))
Теперь я хотел бы добавить новый столбец в avg_df , содержащий количество значений, которые я использовал для расчета среднего роста для каждого tree_id и год , игнорируя NA .
Пример: для CHC01 в 2015 году результат равен 1, потому что это было среднее значение 2,1 и NA, и
для CHC01 в 2018 году, он будет равен 2, поскольку результат является средним 3,2 и 2,7
Вот ожидаемый результат:
avg_df$radii <- c(1,1,2,2,1,1,1,2)
tree_id year avg_growth radii
CHC01 2015 2.1 1
CHC01 2016 1.5 1
CHC01 2017 1.75 2
CHC01 2018 2.95 2
CHC02 2015 3.5 1
CHC02 2016 1.4 1
CHC02 2017 2.3 1
CHC02 2018 2.2 2
* В моих реальных данных значения в радиусы будут варьироваться от 1 до 4.
Может ли кто-нибудь помочь мне с этим?
Большое спасибо!