Я ищу помощь здесь. У меня есть два кадра данных, df1 и df2. Я хочу добавить дополнительный столбец к df1, основываясь на сумме указанных c строк в df2.
Df1 содержит названия станций. Df2 содержит местоположения, годы и наблюдения в градусах. Я хочу сумму градусов для каждой станции. Эти градусы должны быть суммами определенных c мест для каждого года. Думайте об этом, как «каждая станция должна получить свою сумму градусов, основанную на данных местоположениях, за каждый год». Я надеюсь кодировать только название станции и ее местоположение. Годы в требуемой_процедуре должны включать все годы, указанные в df2.
Неудачный пример и желаемый результат. Я предпочитаю работать в среде Tidyverse.
Всего наилучшего
df1 <- data.frame(station = c("station_A", "station_B"))
df2 <- data.frame(location= c("south", "north", "north", "east", "west"), year = c(2000, 2000, 2001, 2001, 2001), degrees = c(5,3,9,5,2))
degrees_for_each_station <-
df1%>%
mutate (degrees = case_when(
station == "station_A" ~ if_else(df2$location %in% c("north","south"),
sum(df2$degrees),
NA),
station == "station_B" ~ if_else(df2$location %in% c("north","east", "west"),
sum(df2$degrees),
NA)))
desired_output <- data.frame(station = c("station_A", "station_A","station_B", "station_B"),
year = c(2000, 2001, 2000, 2001),
degrees = c(8,9,3,16))```