我有一个代码,我将在两个gamma分布上进行for循环。
给定形状参数列表,我将它们命名为“d”,然后我在随机伽玛函数中放入d [1]和d [2]。
我在这里简化了我想要的内容。当我在R中编码d [1]时,输出将是第一个矢量,而当我在R中编码d [2]时,输出将是第二个矢量。 我有点失败然后如果我使用for循环进行d?它将如何迭代?
*
List_1 <- list(c(4,16),c(16/9,4),c(1,16/9),c(.64,1),c(4/9,.64))
for ( d in List_1) ##first parameter is for gamma.1, second is for gamma.2
{
x<-rgamma(25,d[1],1)
y<-rgamma(25,d[2],1)
t<-t.test(x,y)$p.value
}*
如果我问一个愚蠢的问题,我很抱歉。提前致谢。
答案 0 :(得分:1)
在R中,最好避免因为性能不佳而导致循环。因为你从一个列表开始lapply是一个好的开始:
lapply(List_1, FUN=function(x){t.test(rgamma(25,x[1],1), rgamma(25,x[2],1))$p.value})
apply函数获取列表,然后在t.test中的2个参数上使用gamma函数。结果将是五个p值的列表,每对一个
答案 1 :(得分:1)
您的代码运行正常。我其实不确定你在这里问什么。您可以使用print
来查找迭代,如果这是您想要的,例如:
for (d in List_1){
print(d[1])
print(d[2])
}