考虑以下代码及其回报:
my_func<- function(t=4,n=100,m=0.009){
AA<- AB<- BB<- numeric(length = t+1)
AA[1]<- rbinom(1,n,1-m)
AB[1]<- BB[1]<- 0
for(step in 1:t){
AB[step+1]<- rbinom(1,AA[step],1-m)
BB[step+1]<- rbinom(1,AB[step],1-m)
AA[step+1]<- rbinom(1,BB[step],1-m)
}
out<- cbind(AA,AB,BB)
return(out)
}
my_func()
AA AB BB
[1,] 99 0 0
[2,] 0 99 0
[3,] 0 0 99
[4,] 98 0 0
[5,] 0 96 0
我希望能够将返回值转换为数据帧,以便我可以在其他函数中使用生成的输出的一部分。如何将其转换为数据框?
提前致谢。
答案 0 :(得分:0)
只需使用as.data.frame(...)
,如下所示:
my_func<- function(t=4,n=100,m=0.009){
AA<- AB<- BB<- numeric(length = t+1)
AA[1]<- rbinom(1,n,1-m)
AB[1]<- BB[1]<- 0
for(step in 1:t){
AB[step+1]<- rbinom(1,AA[step],1-m)
BB[step+1]<- rbinom(1,AB[step],1-m)
AA[step+1]<- rbinom(1,BB[step],1-m)
}
out<- cbind(AA,AB,BB)
return(as.data.frame(out))
}
> my_func()
AA AB BB
1 99 0 0
2 0 99 0
3 0 0 99
4 98 0 0
5 0 96 0
> class(my_func())
[1] "data.frame"