我一直收到一条错误消息,告诉我hist()输出的"x“必须是数字,我该怎么解决这个问题呢?
length= function(nsims,n)
{
x <- as.numeric(seq(2,nsims))
t <- lapply(x,abovex)
return(t)
}
hist(length(10,10))注意:
abovex = function(n) {
if (n<=0){ return(cat("n must be greater than 0"))}
else
step = c(1, -1)
S = c(0, cumsum(sample(step,n, prob=c(.5, .5), replace=T)))
above=sum(S[S > 0])
return(above)
}谢谢!
发布于 2014-03-11 05:45:06
您的length函数返回一个列表,而不是一个数字向量。length也是一个基本函数,所以您可能希望选择一个不同的名称,以避免混淆。
如果希望将结果*s*简化为一个向量,请使用sapply而不是lapply。
length_sims <- function(nsims,n)
{
x <- seq(2,nsims)
t <- sapply(x,abovex)
return(t)
}
hist(length_sims(10,10))您的函数也可以缩写为:
length_sims_short <- function(n) sapply(seq(2, n), abovex)
hist(length_sims_short(10))https://stackoverflow.com/questions/22311961
复制相似问题