arrays - 使用outer生成列表数组

标签 arrays r list

我正在一个返回列表的函数上运行outer,并且我希望它返回一个列表数组,因为文档是这样说的:

The outer product of the arrays X and Y is the array A with dimension c(dim(X), dim(Y)) where element A[c(arrayindex.x, arrayindex.y)] = FUN(X[arrayindex.x], Y[arrayindex.y], ...).

但是,以下代码会引发错误:

outer(1:5, 1:5, Vectorize(function(x, y) list(x=x, y=y)))
#Error in outer(1:5, 1:5, Vectorize(function(x, y) list(x = x, y = y))) : 
#  dims [product 25] do not match the length of object [50]

似乎 outer 试图压平我的列表,而我希望它们保持完整。似乎没有参数可以控制它(与 sapplysimplify 不同)。你会提出什么建议?我唯一的要求是至少保留两个维度以用于索引目的。

最佳答案

你可以试试

outer(1:5, 1:5, Vectorize(function(x,y) list(c(x=x, y=y))))

输出一个包含 25 个元素的列表,每个元素都是一个命名向量

或者另一种选择是将其包装在“列表”中以创建列表列表。

outer(1:5, 1:5, Vectorize(function(x,y) list(list(x=x, y=y)))) 

关于arrays - 使用outer生成列表数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410041/

相关文章:

python - 如何将字典中的列表 append 到其自己的列中?

python - 根据主列表对类实例列表进行排序

list - 从 List<myType> 获取最大值

ruby - 如果数组在每次迭代期间更新,array.each 能否正常工作?

arrays - 创建两个用户的广告组表

javascript - 在名字和姓氏之后对数组进行排序,javascript

r - 从数据帧中的重复测量中检测不可能的数据输入错误

python - 如何增加python中打印的列数?

r - 将矩阵转换为 R 中的灰度图像

r - 将 colnames() 分配给数据框的特定列