R语言-v2-定义函数
阅读数:141
共2篇a
以例题的方式简述R语言基础知识
计算圆周率pi
x <-runif(1000,min=-1,max=1)
y <-runif(1000,min=-1,max=1)
a <-sum((x^2+y^2)<1)
pi<- 4*a/1000
中心极限定理
m<-100000000
mx<-NA
for(j in 1:m){
x<-rchisq(15,8)
y<-(x/10)^2
z<-y+x
mx[j]<-mean(z)
}
mx
hist(mx)
#卡方分布rchisq(n,df,ncp=0 )
#求解一元二次方程根
get.root<-function(a,b,c){
if(sign(b*b-4*a*c)==-1)
#sign符号函数,数据<0为-1;>0为1
{print(“无解")
return(c(NA,NA))
}else
return(c((-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a)))
}
get.root(1,-4,4)
问题
A 和 B约定在某篮球场见面。他俩都不太守时,出现时间服从均匀分布。他俩也都没有耐心, 每个人都会只等对方十分钟就会离开。已知 A 到篮球场的时间为下午 4 点到 5点之间。
(1)如果B 到达篮球场的时间也为下午 4 点到 5 点之间,模拟运行 50000 次,看看他 们成功相遇的概率。
n_Sim <- 50000
sim_meet <- tibble(
A = runif(n_Sim,min = 0, max = 60),
B = runif(n_Sim,min = 0, max = 60)
) %>%
mutate(result = ifelse(abs(A - B) <= 10,
"They meet","They do not"))
p_meet <- sim_meet %>% count(result) %>%
arrange(n) %>%
mutate(percent = n / n_Sim)
p_meet
(2)对上一问的 50000 次模拟,用不同颜色在一张图中展示成功相遇与否。
ggplot(data = sim_meet, aes(x = A, y = B, color = result)) +
geom_point()