Я написал функцию для выполнения 2 вложенных циклов для вычисления максимально возможного вычисляемого значения для каждой строки. Для каждой строки я добавляю x в функцию. Однако функция затем возвращает одинаковое значение для каждой строки.
Я попытался отфильтровать только те идентификаторы, которые соответствуют входным данным, однако, похоже, что это не работает.
dd <- data.frame(x=c(3,4,5),id=c('A','B','C'))
foo <- function(x,a){
df <- data.frame(
"id" = character()
,"y" = numeric()
)
for(i in 1:2)
{
for(j in 1:2)
{
y<-x+i+j
df<- rbind(df, data.frame(
"id" = a
,"y" = y
)
)
}
}
# I tried this filtering but it still shows max calculated value from all 3 rows
result<-df%>%
filter(id==a)%>%
arrange(desc(y))%>%
head(1)
return(result$y)
}
dd%>% mutate(t=foo(dd$x, dd$id))
Результат, который я ожидаю, - это функция, которая возвращает значение y первой строки каждого цикла.
Ожидаемый результат.
x id t
1 3 A 7
2 4 B 8
3 5 C 9
Но я получил
x id t
1 3 A 9
2 4 B 9
3 5 C 9
Кто-нибудь может помочь?
Спасибо