[英]Error 'x' must be numeric?
我不斷收到一條錯誤消息,指出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)
}
謝謝!
您的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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.