R语言 对参数的成对组合应用函数

htrmnn0y  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(196)

我不太熟悉R,所以这个问题可能已经得到了回答,但我可能只是不明白答案,所以任何链接到其他线程将是有益的。
我在寻找一种基本上可以实现R语言的C程序的方法

for(int i = 0; i < 12; i++){
    for(int j = 0; j < 9; j++){
        arr[i][j] = func(i+1,j+1);
    }
}

我试过了

x <- mapply(func, 1:12, 1:9)

但它只把(1,1),(2,2),(3,3)......传递到func中,我怎么才能把向量1:12和1:9的所有两两组合传递到func中呢?

sczxawaw

sczxawaw1#

这是否有效:一个月一个月
否则,请使用matrix(apply(expand.grid(1:12, 1:9), 1, func), 12, 9)
背景:"dims [product xx] do not match the length of object [xx]" error in using R function outer

vfwfrxfs

vfwfrxfs2#

sapply(data.frame(t(expand.grid(1:12, 1:9))), function(v) func(v[1], v[2]))

expand.grid将所有组合创建为 Dataframe 行。t转置结果,我将其视为data.framet返回一个令人烦恼的矩阵......即使应用于data.frame......)和sapply。由于sapply将 Dataframe 视为列值列表,我得到了纵列(实际上是按行-在应用t转置...之后)列出 Dataframe 内容。这些实际行向量取自函数和应用于这两个值的函数func。因此,最后,我们把每一个可能的配对组合输入到函数(v)中...

相关问题