r语言 - 具有多个 NA 的向量的交替元素

  • 本文关键字:向量 元素 NA r语言 r vector
  • 更新时间 :
  • 英文 :


我在 R 中有一个字符向量,并且想在字符向量的元素之间制作一个具有多个 NA 的新向量。 为简化起见,字符向量为:

cv <- c( "A", "B", "C" )

假设我们只需要 3 个 NA(实际上需要更多(。所需的输出向量为:

"A", NA, NA, NA, "B", NA, NA, NA, "C", NA, NA, NA

我猜以前有人问过这个问题,但很难搜索。 我尝试了 rep 和 rbind 的各种排列和组合,但没有成功。 要温柔;我的第一个问题:-(

使用sapply将 c(NA, NA, NA( 连接到cv的每个元素,以便对于cv的每个元素,我们得到一个 4 向量。sapply将它们排列成一个 4 x n 矩阵(其中 n 是cv的长度(,左边的c会将该矩阵分解成一个向量。

c(sapply(cv, c, rep(NA, 3)))
##  [1] "A" NA  NA  NA  "B" NA  NA  NA  "C" NA  NA  NA 

您可以尝试使用matrix()as.vector()

v <- as.vector(rbind(cv,matrix(nrow = 3,ncol = length(cv))))

这样

> v
[1] "A" NA  NA  NA  "B" NA  NA  NA  "C" NA  NA 
[12] NA 

我们可以创建一个带有NA的向量,并根据seq生成的位置替换cv元素。

n <- 3
vec <- rep(NA, (n + 1) * length(cv))
vec[seq(1, length(vec), n + 1)] <- cv
vec
#[1] "A" NA  NA  NA  "B" NA  NA  NA  "C" NA  NA  NA 

最新更新