【问题标题】:How to apply coalesce to a matrix如何将合并应用于矩阵
【发布时间】:2021-12-31 20:08:37
【问题描述】:

我知道我可以通过这种方式合并三个向量:

y <- c(1, NA, NA, NA, 5)
z <- c(NA, NA, 3, 4, 6)
k <- c(NA, 1, NA, NA, 8)
coalesce(y,z,k)

但是,在实际数据中,我只能得到整个数据集:

d <- rbind(y,z,k)

而在现实生活中,每次d 都有不同的行长(有时是 3 行,有时是 4 行),这意味着我们不能只写:

coalesce(d[1,],d[2,],d[3,])

我想过split函数:

split(t(d),rep(1:nrow(d),each = ncol(d)))

得到:

$`1`
[1]  1 NA NA NA  5

$`2`
[1] NA NA  3  4  6

$`3`
[1] NA  1 NA NA  8

split 函数的结果不能应用于合并函数。

有没有办法实现我的想法?

【问题讨论】:

  • c(y, z, k)怎么样
  • @Oliver 不幸的是我不能。在真实数据集中我只得到d,一些ds 可能有c(y,z,k,l)

标签: r dplyr tibble


【解决方案1】:

你可以在do.call()内使用,即

do.call(coalesce, as.data.frame(t(d)))
#[1] 1 1 3 4 5

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多