R 具有多个NAs的向量的替换元素
我在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(
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