首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在列表中使用mapply

如何在列表中使用mapply
EN

Stack Overflow用户
提问于 2021-02-07 17:14:31
回答 1查看 34关注 0票数 0

我想这样使用mapply:

代码语言:javascript
复制
result<-mapply(sum,c(1,2,3),c(list(1,2),list(3,4),list(5,6)))

并获取以下内容:

代码语言:javascript
复制
result
[[1]]
2 3
[[2]]
5 6
[[3]]
8 9

但我得到的却是:

代码语言:javascript
复制
Result
2 4 6 5 7 9

我怎么才能修复它呢?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-07 17:19:29

检查c(list(1,2),list(3,4),list(5,6))的输出

代码语言:javascript
复制
c(list(1,2),list(3,4),list(5,6))
#[[1]]
#[1] 1

#[[2]]
#[1] 2

#[[3]]
#[1] 3

#[[4]]
#[1] 4

#[[5]]
#[1] 5

#[[6]]
#[1] 6

这是一个长度为6的列表。这可能不是您想要的。您需要的结构是:

代码语言:javascript
复制
list(c(1,2),c(3,4),c(5,6))

#[[1]]
#[1] 1 2

#[[2]]
#[1] 3 4

#[[3]]
#[1] 5 6

同样,sum返回1个数字,为了获得预期的输出,您应该使用+

代码语言:javascript
复制
Map(`+`,c(1,2,3),list(c(1,2),c(3,4),c(5,6)))

#[[1]]
#[1] 2 3

#[[2]]
#[1] 5 6

#[[3]]
#[1] 8 9

对于mapply,您必须使用SIMPLIFY = FALSE来维护列表结构。

代码语言:javascript
复制
mapply(`+`,c(1,2,3),list(c(1,2),c(3,4),c(5,6)), SIMPLIFY = FALSE)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66086252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档