随着函数的变化在 R 中绘制绘图
Draw a plot in R as the function varies
我有一个名为 prob 的代码。
prob<-function(k){
start=1
for(i in 1:k-1){
cumm=start*(1-i/365)
start=cumm
}
return(start)
}
然后,我创建了这个函数,opp。
opp<-function(a){
1-prob(a)
}
现在,我想绘制从 1 到 25 的 opp。
比如我想看opp(1), opp(2), opp(3), opp(4)...., opp(25)
我试过了
plot(opp(a=x),from=1,to=25)
或
plot(opp,from=1,to=25)
或
plot(1:25,opp[1:25])
...
none 这些作品...
很沮丧...请帮忙!
我会在绘图之前修复 opp
函数以进行矢量化。
您可以 Vectorize(opp)
进行快速修复:
prob<-function(k){
start=1
for(i in 1:k-1){
cumm=start*(1-i/365)
start=cumm
}
return(start)
}
opp<-function(a){
1-prob(a)
}
vopp <- Vectorize(opp)
vopp(1:25)
# [1] 0.000000000 0.002739726 0.008204166 0.016355912 0.027135574 0.040462484
# [7] 0.056235703 0.074335292 0.094623834 0.116948178 0.141141378 0.167024789
# [13] 0.194410275 0.223102512 0.252901320 0.283604005 0.315007665 0.346911418
# [19] 0.379118526 0.411438384 0.443688335 0.475695308 0.507297234 0.538344258
# [25] 0.568699704
或者,更 "R" 的方式是:
opp2 <- function(k) 1 - cumprod(1 - (k - 1) / 365)
opp2(1:25)
# [1] 0.000000000 0.002739726 0.008204166 0.016355912 0.027135574 0.040462484
# [7] 0.056235703 0.074335292 0.094623834 0.116948178 0.141141378 0.167024789
# [13] 0.194410275 0.223102512 0.252901320 0.283604005 0.315007665 0.346911418
# [19] 0.379118526 0.411438384 0.443688335 0.475695308 0.507297234 0.538344258
# [25] 0.568699704
然后都给我这个
plot(opp2(1:25))
plot(vopp(1:25))
我有一个名为 prob 的代码。
prob<-function(k){
start=1
for(i in 1:k-1){
cumm=start*(1-i/365)
start=cumm
}
return(start)
}
然后,我创建了这个函数,opp。
opp<-function(a){
1-prob(a)
}
现在,我想绘制从 1 到 25 的 opp。
比如我想看opp(1), opp(2), opp(3), opp(4)...., opp(25)
我试过了
plot(opp(a=x),from=1,to=25)
或
plot(opp,from=1,to=25)
或
plot(1:25,opp[1:25])
...
none 这些作品...
很沮丧...请帮忙!
我会在绘图之前修复 opp
函数以进行矢量化。
您可以 Vectorize(opp)
进行快速修复:
prob<-function(k){
start=1
for(i in 1:k-1){
cumm=start*(1-i/365)
start=cumm
}
return(start)
}
opp<-function(a){
1-prob(a)
}
vopp <- Vectorize(opp)
vopp(1:25)
# [1] 0.000000000 0.002739726 0.008204166 0.016355912 0.027135574 0.040462484
# [7] 0.056235703 0.074335292 0.094623834 0.116948178 0.141141378 0.167024789
# [13] 0.194410275 0.223102512 0.252901320 0.283604005 0.315007665 0.346911418
# [19] 0.379118526 0.411438384 0.443688335 0.475695308 0.507297234 0.538344258
# [25] 0.568699704
或者,更 "R" 的方式是:
opp2 <- function(k) 1 - cumprod(1 - (k - 1) / 365)
opp2(1:25)
# [1] 0.000000000 0.002739726 0.008204166 0.016355912 0.027135574 0.040462484
# [7] 0.056235703 0.074335292 0.094623834 0.116948178 0.141141378 0.167024789
# [13] 0.194410275 0.223102512 0.252901320 0.283604005 0.315007665 0.346911418
# [19] 0.379118526 0.411438384 0.443688335 0.475695308 0.507297234 0.538344258
# [25] 0.568699704
然后都给我这个
plot(opp2(1:25))
plot(vopp(1:25))