надеялся, что кто-то может помочь.
Я пытаюсь добавить другой столбец: 6th Worst
. Что я хочу сделать, так это получить 6-й худший результат y
, основанный на указанных критериях: Date
.
Вот пример моего df:
Key Date y x1 x2 x3
1 1/10/2018 12:00:00 AM 2 3 2 5
1 1/11/2018 12:00:00 AM 3 5 7 2
1 1/12/2018 12:00:00 AM 5 7 4 7
1 1/13/2018 12:00:00 AM 7 2 7 6
2 1/10/2018 12:00:00 AM 2 6 3 8
2 1/11/2018 12:00:00 AM 3 7 7 3
2 1/12/2018 12:00:00 AM 3 2 3 4
2 1/13/2018 12:00:00 AM 7 6 2 7
3 1/10/2018 12:00:00 AM 2 3 2 5
3 1/11/2018 12:00:00 AM 3 5 7 2
3 1/12/2018 12:00:00 AM 5 7 4 7
3 1/13/2018 12:00:00 AM 7 2 7 6
3 1/10/2018 12:00:00 AM 2 6 3 8
3 1/11/2018 12:00:00 AM 3 7 7 3
3 1/12/2018 12:00:00 AM 3 2 3 4
3 1/13/2018 12:00:00 AM 7 6 2 7
4 1/10/2018 12:00:00 AM 2 3 2 5
4 1/11/2018 12:00:00 AM 3 5 7 2
4 1/12/2018 12:00:00 AM 5 7 4 7
4 1/13/2018 12:00:00 AM 7 2 7 6
4 1/10/2018 12:00:00 AM 2 6 3 8
4 1/11/2018 12:00:00 AM 3 7 7 3
5 1/12/2018 12:00:00 AM 3 2 3 4
5 1/13/2018 12:00:00 AM 7 6 2 7
5 1/10/2018 12:00:00 AM 2 3 2 5
5 1/11/2018 12:00:00 AM 3 5 7 2
5 1/12/2018 12:00:00 AM 5 7 4 7
5 1/13/2018 12:00:00 AM 7 2 7 6
6 1/10/2018 12:00:00 AM 2 6 3 8
6 1/11/2018 12:00:00 AM 3 7 7 3
6 1/12/2018 12:00:00 AM 3 2 3 4
6 1/13/2018 12:00:00 AM 7 6 2 7
Итак, для 1/10/2018 3. Таким образом, набор данных будет выглядеть так:
Key Date y x1 x2 x3 6th worst
1 1/10/2018 12:00:00 AM 2 3 2 5 3
1 1/11/2018 12:00:00 AM 3 5 7 2 ... (would have values)
1 1/12/2018 12:00:00 AM 5 7 4 7 ... (would have values)
1 1/13/2018 12:00:00 AM 7 2 7 6 ... (would have values)
2 1/10/2018 12:00:00 AM 2 6 3 8 3
2 1/11/2018 12:00:00 AM 3 7 7 3 etc.
2 1/12/2018 12:00:00 AM 3 2 3 4
2 1/13/2018 12:00:00 AM 7 6 2 7
3 1/10/2018 12:00:00 AM 2 3 2 5
3 1/11/2018 12:00:00 AM 3 5 7 2
3 1/12/2018 12:00:00 AM 5 7 4 7
3 1/13/2018 12:00:00 AM 7 2 7 6
3 1/10/2018 12:00:00 AM 2 6 3 8
3 1/11/2018 12:00:00 AM 3 7 7 3
3 1/12/2018 12:00:00 AM 3 2 3 4
3 1/13/2018 12:00:00 AM 7 6 2 7
4 1/10/2018 12:00:00 AM 2 3 2 5
4 1/11/2018 12:00:00 AM 3 5 7 2
4 1/12/2018 12:00:00 AM 5 7 4 7
4 1/13/2018 12:00:00 AM 7 2 7 6
4 1/10/2018 12:00:00 AM 2 6 3 8
4 1/11/2018 12:00:00 AM 3 7 7 3
5 1/12/2018 12:00:00 AM 3 2 3 4
5 1/13/2018 12:00:00 AM 7 6 2 7
5 1/10/2018 12:00:00 AM 2 3 2 5
5 1/11/2018 12:00:00 AM 3 5 7 2
5 1/12/2018 12:00:00 AM 5 7 4 7
5 1/13/2018 12:00:00 AM 7 2 7 6
6 1/10/2018 12:00:00 AM 2 6 3 8
6 1/11/2018 12:00:00 AM 3 7 7 3
6 1/12/2018 12:00:00 AM 3 2 3 4
6 1/13/2018 12:00:00 AM 7 6 2 7
Вот что у меня есть:
# для получения 6-го наихудшего значения из набора данных
n=length(df$y)
df$`6th Worst`= df$`6th Worst`= "-"
df[1,3] = round(-sort(subset(df,c(unique(Date), "y")), partial=n-5)[n-5], digits = 2)
Я получаю следующую ошибку:
Error in subset.data.frame(reg_predict, unique(reg_predict2$Date)) :
'subset' must be logical
Edit:
вопрос отличается от дублированного отмеченного вопроса в нескольких отношениях. Особенно в том, что мне нужен условный 6-й худший сценарий, а не просто худший / лучший сценарий.