Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List - Fatal编程技术网

一个列表中的扣除值与另一个列表中的值具有R

一个列表中的扣除值与另一个列表中的值具有R,r,list,R,List,我有两个列表A1和A2,我需要用A2中的每个值扣除A1。像A1$aa[1]-A2$aa[1] 我只是尝试了A1-A2,但显然这不是正确的方法 如何计算A1-A2 A1 <- list (aa = list(a = data.frame(matrix(1:10,10,15)), b = data.frame(matrix(1:10,10,15))), bb = list(a = data.frame(matrix(1:10,

我有两个列表
A1
A2
,我需要用
A2
中的每个值扣除
A1
。像
A1$aa[1]-A2$aa[1]

我只是尝试了
A1-A2
,但显然这不是正确的方法

如何计算A1-A2

A1 <- list (aa = list(a = data.frame(matrix(1:10,10,15)),
                      b = data.frame(matrix(1:10,10,15))),
            bb = list(a = data.frame(matrix(1:10,10,15)),
                      b = data.frame(matrix(1:10,10,15))))

A2 <- list (aa = list(a = data.frame(matrix(1:10,10,15)),
                      b = data.frame(matrix(1:10,10,15))),
            bb = list(a = data.frame(matrix(1:10,10,15)),
                      b = data.frame(matrix(1:10,10,15))))

A1如果您希望得到一个列表,请尝试以下操作:

lapply(1:2,函数(i)A1[[i]]-A2[[i]]

如果您想要结果列表,请尝试以下操作:

lapply(1:2,函数(i)A1[[i]]-A2[[i]]

也许这就是你想要的

> Map("-",A1,A2)
$a
  x y
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0

$b
  x y
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0

也许这就是你想要的

> Map("-",A1,A2)
$a
  x y
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0

$b
  x y
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0

我们可以使用
map2

library(purrr)
map2(A1, A2, ~ map2(.x, .y, `-`))

我们可以使用
map2

library(purrr)
map2(A1, A2, ~ map2(.x, .y, `-`))

我得到了这个错误消息,仍然是二进制运算符的非数值参数。在lappy
A1[[i]]-A2[[i]]
中,它不是与
A1-A2
具有相同的含义吗?我用您的数据集尝试了该代码,它对我有效
A1[[i]]-A2[[i]]
直接作用于列表参数(在您的示例数据帧中),而
A1-A2
是不允许在列表之间进行的操作。请尝试重新运行示例代码并
lappy
非常抱歉。我用不完全相同的数据类型制作了这个示例。我已经更新了我的问题。很抱歉浪费您的时间。我仍然收到此错误消息,即二进制运算符的非数值参数为
。在lappy
A1[[i]]-A2[[i]]
中,它不是与
A1-A2
具有相同的含义吗?我用您的数据集尝试了该代码,它对我有效
A1[[i]]-A2[[i]]
直接作用于列表参数(在您的示例数据帧中),而
A1-A2
是不允许在列表之间进行的操作。请尝试重新运行示例代码并
lappy
非常抱歉。我用不完全相同的数据类型制作了这个示例。我已经更新了我的问题。很抱歉浪费您的时间。我用错误的数据类型制作了示例。很抱歉浪费了你的时间。我用我所做的新示例尝试了你的建议,这是错误消息
error in.Primitive(“-”)(dots[[1L]][[1L]],dots[[2L]][[1L]]):二进制运算符的非数字参数
我得到了相同的错误。可能是因为嵌套的
映射(函数(x,y)映射(
-
,x,y),A1,A2)
我用错误的数据类型做了这个示例。很抱歉浪费了你的时间。我用我所做的新示例尝试了你的建议,这是错误消息
error in.Primitive(“-”)(dots[[1L]][[1L]],dots[[2L]][[1L]]):二进制运算符的非数字参数
我得到了相同的错误。可能是因为嵌套了
映射(函数(x,y)映射(
-
,x,y),A1,A2)
谢谢您的回复。我对我的示例和真实数据都尝试了map2,但它们都返回了一个带有“NULL”的列表。@Shepard您的数据是一个列表列表。我更新了。谢谢你的回复。我对我的示例和真实数据都尝试了map2,但它们都返回了一个带有“NULL”的列表。@Shepard您的数据是一个列表列表。我更新了。应该行得通