Я ищу здесь помощь. У меня есть два фрейма данных, df1 и df2. Я хочу добавить дополнительный столбец в df1 на основе суммы определенных строк в df2.
Df1 содержит названия станций. Df2 содержат местоположения, годы и наблюдения в градусах. Мне нужна сумма градусов для каждой станции. Эти степени должны быть суммой определенных мест на каждый год. Думайте об этом так, как «каждая станция должна получать свою сумму степеней, основанную на заданном местоположении, за каждый год». Я надеюсь закодировать только название станции и ее местоположение, годы в желаемом_output должны включать все годы, указанные в 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))```