gpt4 book ai didi

rbind 命名向量到不同长度的矩阵

转载 作者:行者123 更新时间:2023-12-02 07:16:37 25 4
gpt4 key购买 nike

我正在尝试将一个命名向量绑定(bind)到一个矩阵上。命名向量的长度与矩阵不同:

> m <- matrix(data = c("1", "2", "3"), 
nrow = 1, ncol = 3,
dimnames = list(c(),
c("column 1", "column 2", "column 3")))

> named_vec <- c("4", "5")
> names(named_vec) <- c("column 1", "column 2")

> rbind(m, named_vec)

我得到以下信息:

Warning message:
In rbind(m, named_vec) :
number of columns of result is not a multiple of vector length (arg 2)

这会产生重复较短向量的不良影响。
此外,plyr 的 rbind.fill 函数在这里不起作用,因为两个参数都需要是数据帧:

> plyr::rbind.fill(data.frame(m), data.frame(named_vec))

Error: All inputs to rbind.fill must be data.frames

我想要的输出是一个矩阵,它用 NA 填充缺失值而不是重复向量,如下所示:

     column 1 column 2 column 3
[1,] "1" "2" "3"
[2,] "4" "5" NA

最佳答案

下面是一个基本的 R 解决方案

do.call(rbind,lapply(u<-list(m,named_vec),`length<-`,max(lengths(u))))

这样

     column 1 column 2 column 3
[1,] "1" "2" "3"
[2,] "4" "5" NA

关于rbind 命名向量到不同长度的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61553460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com