【发布时间】:2016-09-14 08:32:15
【问题描述】:
我想创建一个现有的矢量大小n 并使用NA。我知道我可以像这样在向量的末尾填充:
v1 <- 1:10
v2 <- diff(v1)
length(v2) <- length(v1)
v2
# 1 1 1 1 1 1 1 1 1 NA
但我想在开始时填写NA,而不是以通用的方式。我的意思是对于这个特定的例子,我可以
v2 <- c(NA, diff(v1))
# NA 1 1 1 1 1 1 1 1 1
但我希望存在一些提供类似v2 <- pad(v2, n=length(v1), value=NA) 的基本 R 函数或库
有没有类似的东西我可以使用或者我需要定义我自己的功能:
pad <- function(x, n) { # ugly function that doesn't keep the attributes of x
len.diff <- n - length(x)
c(rep(NA, len.diff), x)
}
pad(1:10, 12) # NA NA 1 2 3 4 5 6 7 8 9 10
【问题讨论】:
-
我不认为你的函数是丑陋的。
-
我不认为你的功能是丑陋的。为什么不设置 n=1 然后你就解决了你的问题。
-
对于
NA填充,您也可以使用v1 <- 1:10; v2 <- diff(v1); length(v2) <- length(v1); v2[order(!is.na(v2))] -
也许并不难看,但我宁愿使用一些现有的基础 R / 库来代替(如果它们存在的话)。
标签: r