我的R函数用于找出人口的百分比在平均值的k标准偏差范围内,但它不起作用
有什么问题吗?这里有一个简单的函数,可以实现您想要的功能。对于这样的任务,您应该使用矢量化函数以避免循环。它还使您的代码更清晰,更易于阅读我的R函数用于找出人口的百分比在平均值的k标准偏差范围内,但它不起作用,r,loops,R,Loops,有什么问题吗?这里有一个简单的函数,可以实现您想要的功能。对于这样的任务,您应该使用矢量化函数以避免循环。它还使您的代码更清晰,更易于阅读 whatpercent(mydata,1) whatpercent(mydata,2) whatpercent(mydata,3) ... whatpercent这里有一个简单的函数,可以实现您想要的功能。对于这样的任务,您应该使用矢量化函数以避免循环。它还使您的代码更清晰,更易于阅读 whatpercent(mydata,1) whatpercent(m
whatpercent(mydata,1) whatpercent(mydata,2) whatpercent(mydata,3) ...
whatpercent这里有一个简单的函数,可以实现您想要的功能。对于这样的任务,您应该使用矢量化函数以避免循环。它还使您的代码更清晰,更易于阅读
whatpercent(mydata,1) whatpercent(mydata,2) whatpercent(mydata,3) ...
whatpercent-Tryfor(i in 1:length(x)){..}
。你不能循环你的代码。是的,ofc!但是现在我得到了length(vec)>=length(x)你定义函数取一个参数,x
,但是你在调用它时提供了两个参数(例如,whatpercent(mydata,1)
)。如前所述,函数只检查值是否小于或等于平均值以上的一个标准偏差。“k”在哪里?请阅读相关信息以及如何给出答案。这将使其他人更容易帮助您。请尝试for(i in 1:length(x)){….}
。你不能循环你的代码。是的,ofc!但是现在我得到了length(vec)>=length(x)你定义函数取一个参数,x
,但是你在调用它时提供了两个参数(例如,whatpercent(mydata,1)
)。如前所述,函数只检查值是否小于或等于平均值以上的一个标准偏差。“k”在哪里?请阅读相关信息以及如何给出答案。这将使其他人更容易帮助您。有没有想过在调用ifelse
之前存储mean(x)
和sd(x)
是否更有效(对于大向量)?没有必要使用ifelse
。只需使用条件即可。正确,更简单;)关于在调用ifelse
之前存储mean(x)
和sd(x)
是否会更有效(对于大向量),您有什么想法吗?不需要使用ifelse
。只需使用条件即可。正确,更简单;)
whatpercent <- function(x, k) {
mean(abs(x - mean(x)) <= sd(x) * k)
}
#Example
x <- rnorm(100)
whatpercent(x,2)
[1] 0.95