如何在 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
我想知道如何生成一个从 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