【发布时间】:2019-01-16 18:59:45
【问题描述】:
我编写了一个函数来执行 2 个嵌套的 for 循环,以计算每一行的最高可能计算值。对于每一行,我将 x 输入函数。但是,该函数随后为每一行返回相同的值。
我尝试仅过滤与 a 输入匹配的 id,但它似乎不起作用。
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
有人可以帮忙吗? 谢谢
【问题讨论】:
-
你期望的输出df是多少?
-
对不起。我简化了我的问题。
标签: r