gpt4 book ai didi

R : how to run a command between every pair in a list

转载 作者:行者123 更新时间:2023-12-01 13:49:50 25 4
gpt4 key购买 nike

我有一个 n x m 矩阵,可以这样说:

df = 

1 0 2 1
1 2 3 2
3 3 1 0
2 2 2 1
1 2 3 1

我想在所有列上运行一个函数,例如 myfunct,它将对每一列求和,然后对每对列求和,自包含。

16 17 19 13  
17 18 20 14
19 20 22 16
13 14 16 10

有没有一种简单的方法可以将 myfunct 应用于矩阵以得到相应的方阵?更一般地说,如果我有一个包含 N 个事物的列表,是否有一种简单的方法可以在该列表中的所有 i、j 对之间运行一个双变量函数,并输出为方矩阵?

最佳答案

这是一个快速函数:

myfun <- function(df){ 
z <- colSums(df)
matrix(rowSums(expand.grid(z, z)), ncol = ncol(df))
}

它首先将 colSums 作为 z。然后我们使用 expand.gridz 的所有组合取到 z 并取 rowSums。输出被强制转换为具有正确列数的矩阵。

myfun(df)
[,1] [,2] [,3] [,4]
[1,] 16 17 19 13
[2,] 17 18 20 14
[3,] 19 20 22 16
[4,] 13 14 16 10

关于R : how to run a command between every pair in a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com