我有一个列表中有10个模拟数字的R在R中(最小值:1.5,最大值88.8),我想计算T在10到50之间的概率。
我总计了100,000个T,其中T是t(y) %*% M %*% y
,其中M
是8x8的常数矩阵,y是8x1矩阵。第i
行中的元素,如果是y,则等于:a_i + b_i
其中a是常量向量,b是元素遵循normal (0,sd=2)
分布的向量(每个元素是不同的模拟数量N(0,2)
)
答案 0 :(得分:2)
是在矢量还是列表中?如果它是矢量,则以下内容应该有效。如果它在列表中,您可以使用unlist()将其转换为矢量。
mylist <- runif(100000,1.5,88.8) #this is just to generate a random number vector
length(which(mylist>=10 & mylist<=50))/length(mylist)
答案 1 :(得分:0)
set.seed(42)
myrandoms <- rnorm(100000, mean=5, sd=2)
mydistr <- ecdf(myrandoms)
#probability of beeing between 1 and 3:
diff(mydistr(c(1, 3)))
#[1] 0.13781
#compare with normal distribution
diff(pnorm(c(1, 3), mean=5, sd=2))
#[1] 0.1359051
如果您确实有一个列表,请使用myrandoms <- do.call(c, mylist)
将其设为矢量。