加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

总和矢量与相应的名称

发布时间:2020-12-15 04:10:21 所属栏目:Java 来源:网络整理
导读:假设你有一个向量列表: L = list()L[[1]]= c(2,34,6,7,3)L[[2]]= c(3,4,8,1)names(L[[1]])=c("A","B","C","D","E")names(L[[2]])=c("A","R","F")L## [[1]]## A B C D E ## 2 34 6 7 3 ## ## [[2]]## A R C D F ## 3 4 6 8 1 我想用每个元素的名称对2个向量
假设你有一个向量列表:

L = list()
L[[1]]= c(2,34,6,7,3)
L[[2]]= c(3,4,8,1)
names(L[[1]])=c("A","B","C","D","E")
names(L[[2]])=c("A","R","F")
L

## [[1]]
##  A  B  C  D  E 
##  2 34  6  7  3 
## 
## [[2]]
## A R C D F 
## 3 4 6 8 1

我想用每个元素的名称对2个向量求和…结果:

A  B  C  D  E  F  R
5 34 12 15  3  1  4

谢谢

解决方法

使用tapply的另一个解决方案

> tapply(unlist(L),names(unlist(L)),sum)
 A  B  C  D  E  F  R 
 5 34 12 15  3  1  4

编辑

即使您的矢量具有不同的长度,它也会起作用,请参见示例:

> L = list()
> L[[1]]= 1:10
> L[[2]]= c(3,1)
> names(L[[1]])=LETTERS[1:10]
> names(L[[2]])=c("A","F")

> tapply(unlist(L),sum)
 A  B  C  D  E  F  G  H  I  J  R 
 4  2  9 12  5  7  7  8  9 10  4  # IT WORKS!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读