示例函数R语言

示例函数R语言,r,R,你是怎么写的? 假设你有800人,其中300人是民主党人,400人是共和党人,100人是独立人士。 从这个人群中随机抽取10人,你希望得到多少民主党人 我写 D<-1:300 I<-1:100 R<-1:400 Population<-c("D","I","R") table(sample(Population,size=10, replace= TRUE)) D创建总体: > population <- c(rep('Democrat', 300), r

你是怎么写的? 假设你有800人,其中300人是民主党人,400人是共和党人,100人是独立人士。 从这个人群中随机抽取10人,你希望得到多少民主党人

我写

D<-1:300
I<-1:100
R<-1:400
Population<-c("D","I","R")
table(sample(Population,size=10, replace= TRUE)) 
D创建总体:

> population <- c(rep('Democrat', 300), rep('Independent', 100), rep('Republican', 400))

您可以将概率权重向量添加到分析中

Population<-c("D","I","R")
t = table(sample(Population,size=10, replace= TRUE, prob = c(0.375, 0.125, 0.5)))

> t

D I R 
3 1 6 
总体t
D I R
3 1 6 

当您从800人中提取10人时,您有
选择(800,10)
不同的方法来提取他们,其中
choose
是组合数。例如,如果您想知道提取
N
民主党人的方法有多少,您可以获得
choose(500,10-N)*choose(300,N)
,因为您在500人中有
10-N
非民主党人,在300人中有
N
民主党人。要获得概率,只需将上述两个值除以。一般而言:

      N<-0:10
      probs<-(choose(500,10-N)*choose(300,N))/choose(800,10)
      #calculate the average number of Democrats
      sum(probs*N)
      #[1] 3.75
      #calculate the standard deviation
      sqrt(sum(probs*N^2)-3.75^2)
      #[1] 1.522284

这是一个统计问题,而不是编程问题。您可能希望
复制
,而不是
sapply
。谢谢!我想把民主党变成一个数字是错误的,我应该数一数有多少个d
      N<-0:10
      probs<-(choose(500,10-N)*choose(300,N))/choose(800,10)
      #calculate the average number of Democrats
      sum(probs*N)
      #[1] 3.75
      #calculate the standard deviation
      sqrt(sum(probs*N^2)-3.75^2)
      #[1] 1.522284