Прежде всего, я довольно новичок в R, так что я могу не понимать, что происходит здесь, но я застрял в этом куске кода, и мне нужно, чтобы он был быстро исправлен, поэтому спасибо за вашвремя и усилия превентивно.
Я пытаюсь найти точку замерзания на маршрут в год, по сути это произойдет, когда значение КТ превысит порог 9. Дело в том, что я работаю с данными по Арктикезначение КТ начнёт быть выше 9, и мне нужно найти, где оно в первый раз пересекает порог от того, чтобы быть ниже 9 и выше 9. Может быть, есть функции для такого рода локального минимума, но я не знаю, каковы они.
Я попытался сделать длинное выражение для канала, но у меня возникли некоторые проблемы со ссылками на столбцы, поэтому я попытался выделить group_by вне оператора канала, но это тоже не сработало.
РЕДАКТИРОВАТЬ: ЗдесьЭто образец. Я хотел бы получить 1 значение (День года) для Востока 1983 года и Востока 1984 года. Правильные возвращаемые значения - 6 и 18 соответственно.
Route Year Day_Year CT
East 1983 1 3
East 1983 2 2
East 1983 3 1
East 1983 4 0
East 1983 5 2
East 1983 6 9.5
East 1984 1 3
East 1984 3 2
East 1984 9 1
East 1984 10 0
East 1984 14 2
East 1984 18 9.5
library("dplyr")
data_g <- group_by(Sea_Ice, Route, Year)
#Above 9 Freeze-Up
Above_9_A <-
#group_by(Sea_Ice, Route, Year) %>%
data_g %>%
mutate(row.position = which.min(data_g$CT))%>%
filter(CT > 9, !SA %in% c("New Ice", "Nilas", "Grey Ice", "Open Water")) %>%
slice(which.min(Day_Year)) %>%
mutate(Conc_Threshold = "Above_9")
То, что я сейчас делаю, приводит к нахождению минимума для ВСЕХ маршрутов в течение ВСЕХ лет.
Я просто не знаю, куда идти, спасибо за вашу помощь.
РЕДАКТИРОВАТЬ 2: я удалил фильтры для других столбцов, так какне является частью моей проблемы