一个列表中的扣除值与另一个列表中的值具有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, `-`))
我得到了这个错误消息,仍然是二进制运算符的非数值参数。在lappyA1[[i]]-A2[[i]]
中,它不是与A1-A2
具有相同的含义吗?我用您的数据集尝试了该代码,它对我有效A1[[i]]-A2[[i]]
直接作用于列表参数(在您的示例数据帧中),而A1-A2
是不允许在列表之间进行的操作。请尝试重新运行示例代码并lappy
非常抱歉。我用不完全相同的数据类型制作了这个示例。我已经更新了我的问题。很抱歉浪费您的时间。我仍然收到此错误消息,即二进制运算符的非数值参数为。在lappyA1[[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您的数据是一个列表列表。我更新了。应该行得通