嗨,
一段时间以来,我一直在尝试从循环中提取值,但是似乎我找不到答案。
为简单起见,这是我在R程序中使用的代码:
seatsInitial <- function (df,x,y) {
for (i in ModQuota) {
filtered = subset(df, Poll> x)
OnlyPoll <- filtered$Poll
Calculus <- OnlyPoll/i
Calculus2 <- floor(Calculus)
print(Calculus2)
if(sum(Calculus2) == y)
stop("WE GOT IT")
}
}
然后,得到结果:
seatsInitial(PartiesE, 5, 33)
循环正常工作,我能够获得所需的结果。 满足条件时,循环停止。但是,我还需要将输出的最后一行(当循环由于满足条件而停止时)转换为向量。
您是否知道该怎么做?
如果运行循环,则会得到以下结果(此处仅显示输出的最后5行):
[1] 8 14 4 3 5
[1] 8 14 4 3 5
[1] 8 14 4 3 5
[1] 8 14 4 3 5
[1] 7 14 4 3 5
Error in seatsInitial(PartiesEPP, 5, 33) : WE GOT IT
因此,我需要将最后一行(7,14,4,3,5)转换为向量。
感谢您的帮助!
答案 0 :(得分:0)
只需在末尾包含return(Calculus2)
,并在if语句中包含break
。
seatsInitial <- function (df,x,y) {
for (i in ModQuota) {
filtered = subset(df, Poll> x)
OnlyPoll <- filtered$Poll
Calculus <- OnlyPoll/i
Calculus2 <- floor(Calculus)
print(Calculus2)
if(sum(Calculus2) == y){
print("WE GOT IT")
break
}
}
return(Calculus2)
}