Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对于具有列表维度的循环_R_For Loop - Fatal编程技术网

R 对于具有列表维度的循环

R 对于具有列表维度的循环,r,for-loop,R,For Loop,我有一个代码,我将在两个伽马分布上做一个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) ##fi

我有一个代码,我将在两个伽马分布上做一个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
}*
*

列表_1在R中,最好避免for循环,因为它们的性能较差。因为您是从列表开始的,所以Lappy是一个很好的开始:

lapply(List_1, FUN=function(x){t.test(rgamma(25,x[1],1), rgamma(25,x[2],1))$p.value})

应用函数获取您的列表,然后对t测试中的2个参数使用gamma函数。结果将是五个p值的列表,R中每对p值一个。最好避免使用性能较差的for循环。因为您是从列表开始的,所以Lappy是一个很好的开始:

lapply(List_1, FUN=function(x){t.test(rgamma(25,x[1],1), rgamma(25,x[2],1))$p.value})

应用函数获取您的列表,然后对t测试中的2个参数使用gamma函数。结果将是五个p值的列表,每对一个

代码运行正常。我不知道你在问什么。如果需要,可以使用
print
查找迭代词,如:

for (d in List_1){
  print(d[1])
  print(d[2])
}

您的代码运行良好。我不知道你在问什么。如果需要,可以使用
print
查找迭代词,如:

for (d in List_1){
  print(d[1])
  print(d[2])
}

在你的例子中,x和y是什么?在for循环中d在哪里使用?我对你的问题感到困惑。更准确地说:你到底在问什么?您的代码是否生成所需的输出?如果是,您可以保持原样。
for
循环和
*apply
函数之间的性能差异是。您是否收到上述代码中的任何错误?@user1357015 x和y是从分布中随机抽取的样本。为了在for循环中使用“d”,我编辑了我的问题。你可以看看。但是我对R还是新手,所以请原谅我在解释…>@RHertel嗨,如果我没有在问题中明确说明,我道歉。事实上,我还在编写代码的过程中,我发现自己在这个for循环解释中很困惑……在您的示例中,x和y是什么?在for循环中d在哪里使用?我对你的问题感到困惑。更准确地说:你到底在问什么?您的代码是否生成所需的输出?如果是,您可以保持原样。
for
循环和
*apply
函数之间的性能差异是。您是否收到上述代码中的任何错误?@user1357015 x和y是从分布中随机抽取的样本。为了在for循环中使用“d”,我编辑了我的问题。你可以看看。但是我对R还是新手,所以请原谅我在解释…>@RHertel嗨,如果我没有在问题中明确说明,我道歉。事实上,我仍在编写代码的过程中,我发现自己在这个for循环解释中感到困惑…嗨,谢谢,我将运行这个来观察发生了什么:)嗨,谢谢,我将运行这个来观察发生了什么:)嗨,谢谢,我还将阅读apply函数:)您好,谢谢,我还要通读应用功能。:)