R 具有多个NAs的向量的替换元素

R 具有多个NAs的向量的替换元素,r,vector,R,Vector,我在R中有一个字符向量,我想在字符向量的元素之间创建一个具有多个NAs的新向量。为了简化,字符向量为: cv <- c( "A", "B", "C" ) 我猜以前有人问过这个问题,但很难找到。我尝试过rep和rbind的各种排列和组合,但都没有成功。温柔一点;我的第一个问题:-)使用sapply将c(NA,NA,NA)连接到cv的每个元素,这样对于cv的每个元素,我们得到一个4向量sapply将这些矩阵排列成一个4 x n的矩阵(其中n是cv的长度),左侧的c将该矩阵分解成一个向量 c(

我在R中有一个字符向量,我想在字符向量的元素之间创建一个具有多个NAs的新向量。为了简化,字符向量为:

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

我猜以前有人问过这个问题,但很难找到。我尝试过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()


我们可以使用
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 

谢谢你。我从来没有理解过这些应用函数,但我想我需要更加努力地学习。我之所以选择这个作为答案,是因为(对我来说)它比另一个更简单。
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 
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