Q
在R中生成数字
3
A
回答
8
有无数的解决方案。
近似算法:
- 生成N/2号低于中位数
- 产生N个位数
- 以上/ 2号添加你需要的位数和检查
- 添加一个号码有足够的重量以满足你的意思 - 你可以解决这个问题
假设你想要一个中位数为零,平均值为二十:
R> set.seed(42)
R> lo <- rnorm(10, -10); hi <- rnorm(10, 10)
R> median(c(lo,0,hi))
[1] 0 # this meets our first criterion
R> 22*20 - sum(c(lo,0,hi)) # (n+1)*desiredMean - currentSum
[1] 436.162 # so if we insert this, we the right answer
R> mean(c(lo,0,hi,22*20 - sum(c(lo,0,hi))))
[1] 20 # so we meet criterion two
R>
因为desiredMean times (n+1)
必须等于sum(currentSet) + x
所以我们解决x
获得上述表达式。
3
对于一组数据看起来还算“正常”,你可以用修正系数法通过@德克 - Eddelbuettel但用来生成一组围绕你的平均数据的自定义值概述:
X = 25
Y = 25.5
N = 100
set.sd = 5 # if you want to set the standard deviation of the set.
set <- rnorm(N, Y, set.sd) # generate a set around the mean
set.left <- set[set < X] # take only the left half
set <- c(set.left, X + (X - set.left)) # ... and make a copy on the right.
# redefine the set, adding in the correction number and an extra number on the opposite side to the correction:
set <- c(set,
X + ((set.sd/2) * sign(X - Y)),
((length(set)+ 2) * Y)
- sum(set, X + ((set.sd/2) * sign(X - Y)))
)
1
重视第一个答案的第一句话。除非你知道你想要什么底层发行版,否则你不能这样做。一旦知道该分配,就有许多标准的R函数,例如runif
,rnorm
,rchisq
。你可以创建一个arb。与sample
函数。
0
如果您对限制X < Y
没问题,那么您可以拟合对数正态分布。对数正态分布对于平均数和中位数都适用。
rmm <- function(n, X, Y) rlnorm(n, log(Y), sqrt(2*log(X/Y)))
例如为:
z <- rmm(10000, 3, 1)
mean(z)
# [1] 2.866567
median(z)
# [1] 0.9963516
相关问题
- 1. 生成数据集R中
- 2. 生成r中
- 3. 使用R随机生成数字
- 4. 生成与在r中
- 5. 在R中生成序列
- 6. 生成中的R
- 7. 生成中的R
- 8. 生成中的R
- 9. 生成中的R
- 10. 生成中的R
- 11. 生成中的R
- 12. R在jupyter(IPython笔记本)中没有生成数字
- 13. 如何在R中生成从数字到颜色的映射?
- 14. 如何在R中更快地生成随机数字?
- 15. 使用标准模式在R中生成数字序列
- 16. 如何在R中生成这样的随机数字
- 17. 生成从R函数
- 18. 在R中生成k个序数的所有二叉树R
- 19. R:生成组
- 20. R中的随机数生成
- 21. R中的加权随机数生成
- 22. R中的生成器函数
- 23. R生存函数不生成Kaplan-Meier
- 24. 在数组中生成随机数字
- 25. 生成数字
- 26. 生成数字
- 27. r中的热图生成
- 28. 如何生成与R中
- 29. 生成中的R点图
- 30. 生成从R,G,在C++
是啊。所陈述的问题完全没有明确说明,因此不是非常有用。 –