为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不重复较短向量的元素的情况下cbind或rbind不同长度的向量?

如何在不重复较短向量的元素的情况下cbind或rbind不同长度的向量?

慕婉清6462132 2019-08-19 16:15:21
如何在不重复较短向量的元素的情况下cbind或rbind不同长度的向量?cbind(1:2, 1:10)       [,1] [,2]    [1,]    1    1    [2,]    2    2    [3,]    1    3    [4,]    2    4    [5,]    1    5    [6,]    2    6    [7,]    1    7    [8,]    2    8    [9,]    1    9   [10,]    2   10  我想要一个像下面这样的输出[,1] [,2]  [1,] 1 1  [2,] 2 2  [3,]   3  [4,]   4  [5,]   5  [6,]   6  [7,]   7  [8,]   8  [9,]   9  [10,]  10  
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

辅助功能......


bind.pad <- function(l, side="r", len=max(sapply(l,length)))

{

  if (side %in% c("b", "r")) {

    out <- sapply(l, 'length<-', value=len)

  } else {

    out <- sapply(sapply(sapply(l, rev), 'length<-', value=len, simplify=F), rev)}

  if (side %in% c("r", "l")) out <- t(out)

  out

}

例子:


> l <- lapply(c(3,2,1,2,3),seq)

> lapply(c("t","l","b","r"), bind.pad, l=l, len=4)

[[1]]

     [,1] [,2] [,3] [,4] [,5]

[1,]   NA   NA   NA   NA   NA

[2,]    1   NA   NA   NA    1

[3,]    2    1   NA    1    2

[4,]    3    2    1    2    3


[[2]]

     [,1] [,2] [,3] [,4]

[1,]   NA    1    2    3

[2,]   NA   NA    1    2

[3,]   NA   NA   NA    1

[4,]   NA   NA    1    2

[5,]   NA    1    2    3


[[3]]

     [,1] [,2] [,3] [,4] [,5]

[1,]    1    1    1    1    1

[2,]    2    2   NA    2    2

[3,]    3   NA   NA   NA    3

[4,]   NA   NA   NA   NA   NA


[[4]]

     [,1] [,2] [,3] [,4]

[1,]    1    2    3   NA

[2,]    1    2   NA   NA

[3,]    1   NA   NA   NA

[4,]    1    2   NA   NA

[5,]    1    2    3   NA


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 978 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信