在R中如何组合数据帧

时间:2014-12-16 13:11:20

标签: arrays r loops dataframe

对于R来说,我是一个完整的新手,并在此发帖,所以请提前道歉。我想要做的是组合2个数据帧

data <- seq(0,1000)
info <- data.frame(x,a,b)

其中信息最多可达到约。 50,000行。我需要做的是将数据中的每个条目除以信息中的每个x,然后使用pbeta和答案。例如

data[1,1] = 1 

info$x = seq(1:10) 

然后我需要

sum(pbeta(1/1,a,b), pbeta(1/2,a,b), pbeta(1/3,a,b) ... pbeta(1/10,a,b))

目前我正在使用循环来遍历每个数据元素并执行计算。有没有办法避免使用循环。如下所示

while (value <= max)
{x<-(value/info$x);
alp<-(info$Alpha);
bet <-(info$beta);
rat<-(info$rate);
ans <-(1/(1-exp(-1*(sum((1-pbeta(x,alp,bet))*r)))));
data <- rbind(data,data.frame(ans, value));
value <- (value + ((max-1)/1000));
}

对于我对此缺乏了解以及如何发布而道歉。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你的while循环令我困惑,因为它似乎没有你之前描述的那样。但是,这可能有用:

data <- (1:5)/10
info <- data.frame(x = 1:3, a = 1 + (1:3)/10, b = 1 - (1:3)/10)

vapply(data, function(x, info) sum(pbeta(x/info$x, info$a, info$b)), 
       info = info, 
       FUN.VALUE = 0.1)
#[1] 0.1009253 0.2234949 0.3571645 0.4994744 0.6493979