Мне нужно заполнить строки NA предыдущим значением строки, но только до тех пор, пока критерии не будут изменены. В качестве простого примера для дней недели, питание и цены:R заполнить NA с предыдущим значением строки с условием
Day = c("Mon", "Tues", "Wed", "Thus", "Fri", "Sat","Sun","Mon", "Tues",
"Wed", "Thus", "Fri", "Sat","Sun")
Meal = c("B","B","B","B","B","D","D","D","D","L","L", "L","L","L")
Price = c(NA, 20, NA,NA,NA,NA,NA,15,NA,NA,10,10,NA,10)
df = data.frame(Meal,Day ,Price)
df
Meal Day Price
1 B Mon NA
2 B Tues 20
3 B Wed NA
4 B Thus NA
5 B Fri NA
6 D Sat NA
7 D Sun NA
8 D Mon 15
9 D Tues NA
10 L Wed NA
11 L Thus 10
12 L Fri 10
13 L Sat NA
14 L Sun 10
мне нужно заполнить в НС с предыдущим, но только для одного типа еды, в течение недели.
Я попытался
na.locf(df, fromLast = TRUE)
Meal Day Price
1 B Mon 20
2 B Tues 20
3 B Wed 15
4 B Thus 15
5 B Fri 15
6 D Sat 15
7 D Sun 15
8 D Mon 15
9 D Tues 10
10 L Wed 10
11 L Thus 10
12 L Fri 10
13 L Sat 10
14 L Sun 10
что неправильно, как перекрывается тип еды. Данные должны выглядеть следующим образом:
Meal Day Price
1 B Mon 20
2 B Tues 20
3 B Wed 20
4 B Thus 20
5 B Fri 20
6 D Sat 15
7 D Sun 15
8 D Mon 15
9 D Tues 15
10 L Wed 10
11 L Thus 10
12 L Fri 10
13 L Sat 10
14 L Sun 10
Большое спасибо
Что делать, если есть дубликаты для «Day 'для каждой «еды», т. е. несколько недель на «питание»? Состояние сбрасывается на «Mon» или «Sun»? – akrun