我想知道如何生成从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()
函数中找到一个选项来执行此操作。
这个问题是因为我使用heatmap.2()
包的函数gplots
进行了热图,并且列标签太靠近了。我也不能每5或10个位置设置标签。这就是为什么我需要使用NA值生成我自己的标签序列以避免这种重叠。
欢迎任何建议:)
答案 0 :(得分:5)
试试这个:
labCol <- seq(0, 100, 1)
labCol[labCol %% 5 != 0] <- NA
这将生成0到100之间的序列,然后将所有不能被5整除的序列值设置为NA
。
答案 1 :(得分:1)
您还可以创建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