2018-11-27
閱讀量:
820
長度不等的向量怎么相加
比如,
1:4
2:7
4:10
2:8
7:12
五個向量相加,長度不夠的按0算。
怎么求?
有下面這個方法
長度不等的向量相加
a=1:2
b=1:3
c=c(a,rep(0,length(b)-length(a)))+b
c
但是向量比較多的話這么算很煩。
有其他號方法嗎?
- library(dplyr)
- vecList <-
- ? ? list(
- ? ?? ???a = 1:4,
- ? ?? ???b = 2:7,
- ? ?? ???c = 4:10,
- ? ?? ???d = 2:8,
- ? ?? ???e = 7:12
- ? ? )
- # Utility funciton
- alignVec <- function(inVec, tarLen) {
- ? ? return(c(inVec, rep(0, tarLen - length(inVec))))
- }
- # Determine the desired length
- maxLen <- max(sapply(vecList, length))
- # Align the vectors
- vecTarList <- lapply(vecList, alignVec, tarLen = maxLen)
- # Intermediate result
- df <- as.data.frame(vecTarList)
- # Result
- result <- as.data.frame(vecTarList) %>% rowSums()






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論