whatpercent <- function(x) {
i<-1
for(i in length(x)) {
if(x[i]<= mean(x)+sd(x)) {
vec <- c(vec,x[i])
}
else{
next
}
}
percent <- length(vec)/length(x)
percent <- percent * 100
return(percent)
}
好吧,当我使用
时,我似乎得到同样的东西whatpercent(mydata,1) whatpercent(mydata,2) whatpercent(mydata,3) ...
可能是什么问题?
答案 0 :(得分:2)
这是一个简单的功能,应该达到你想要的效果。对于这样的任务,您应该使用矢量化函数以避免循环。它还使您的代码更清晰,更易于阅读。
whatpercent <- function(x, k) {
mean(abs(x - mean(x)) <= sd(x) * k)
}
#Example
x <- rnorm(100)
whatpercent(x,2)
[1] 0.95