如何在 R 中生成包含 NA 值的序列?

How to generate a sequence including NA values in R?

我想知道如何生成一个从 0 到 100 的自动序列,每个数字只有 5 个位置,其余的都应该是 NA 值。最后我想要这样的东西:

> labCol
[1]  0 NA NA NA NA  5 NA NA NA NA 10 NA NA NA NA 15 NA  .....  100

这个例子我是这样手动完成的,但是很费时间:

labCol <- c(0, NA, NA, NA, NA, 5, NA, NA, NA, NA, 10, NA, NA, NA, NA, 15, NA, ... 100 )

我在 seq() 函数中找不到执行此操作的选项。

这个问题是因为我正在用 gplots 包的函数 heatmap.2() 做一个热图,并且列标签太近而无法阅读。我也不能每 5 或 10 个位置设置标签。这就是为什么我需要使用 NA 值生成自己的标签序列以避免这种重叠。

欢迎提出任何建议:)

试试这个:

labCol <- seq(0, 100, 1)
labCol[labCol %% 5 != 0] <- NA

这会生成一个从 0 到 100 乘以 1 的序列,然后将所有不能被 5 整除的序列值设置为 NA

您还可以创建一个 NA 向量,然后填充元素

 labCol <- rep(NA,100)
 labCol[seq(1,101, 5)] <- seq(0,100,5)
 labCol
 #[1]   0  NA  NA  NA  NA   5  NA  NA  NA  NA  10  NA  NA  NA  NA  15  NA  NA
 #[19]  NA  NA  20  NA  NA  NA  NA  25  NA  NA  NA  NA  30  NA  NA  NA  NA  35
 #[37]  NA  NA  NA  NA  40  NA  NA  NA  NA  45  NA  NA  NA  NA  50  NA  NA  NA
 #[55]  NA  55  NA  NA  NA  NA  60  NA  NA  NA  NA  65  NA  NA  NA  NA  70  NA
 #[73]  NA  NA  NA  75  NA  NA  NA  NA  80  NA  NA  NA  NA  85  NA  NA  NA  NA
 #[91]  90  NA  NA  NA  NA  95  NA  NA  NA  NA 100