我正在编写一个创建向量的代码库,但是在这个列表中,我希望第一项第19次,第二次18次,但是标签必须是"V1","V2“。更具体而言:
c("V1", "V1", "V1", "V1", "V1", "V1", "V1", "V1", "V1", "V1", "V1",
"V1", "V1", "V1", "V1", "V1", "V1", "V1", "V1", "V2", "V2", "V2",
"V2", "V2", "V2", "V2", "V2", "V2", "V2", "V2", "V2", "V2", "V2",
"V2", "V2", "V2", "V2", "V3", "V3", "V3", "V3", "V3", "V3", "V3",
"V3", "V3", "V3", "V3", "V3", "V3", "V3", "V3", "V3", "V3", "V4",
"V4", "V4", "V4", "V4", "V4", "V4", "V4", "V4", "V4", "V4", "V4",
"V4", "V4", "V4", "V4", "V5", "V5", "V5", "V5", "V5", "V5", "V5",
"V5", "V5", "V5", "V5", "V5", "V5", "V5", "V5", "V6", "V6", "V6",
"V6", "V6", "V6", "V6", "V6", "V6", "V6", "V6", "V6", "V6", "V6",
"V7", "V7", "V7", "V7", "V7", "V7", "V7", "V7", "V7", "V7", "V7",
"V7", "V7", "V8", "V8", "V8", "V8", "V8", "V8", "V8", "V8", "V8",
"V8", "V8", "V8", "V9", "V9", "V9", "V9", "V9", "V9", "V9", "V9",
"V9", "V9", "V9", "V10", "V10", "V10", "V10", "V10", "V10", "V10",
"V10", "V10", "V10", "V11", "V11", "V11", "V11", "V11", "V11", "V11",
"V11", "V11", "V12", "V12", "V12", "V12", "V12", "V12", "V12", "V12",
"V13", "V13", "V13", "V13", "V13", "V13", "V13", "V14", "V14", "V14",
"V14", "V14", "V14", "V15", "V15", "V15", "V15", "V15", "V16", "V16",
"V16", "V16", "V17", "V17", "V17", "V18", "V18", "V19" )我想创建19个V1和18个V2。这是我的代码,我可以创建19次第一项等等,但是如何分别创建项目标签和项目编号呢?
z <- c()
for (i in 19:1){
k <- c(paste("V",i, sep = ""))
k <- c(k,rep(k,i-1))
z <- c(z, c(k))
}发布于 2015-09-28 12:34:20
对于阿肯的评论来说,这是一个细微的变化:
rep(sprintf('V%d', 1:19), c(19:1))在这里,我使用sprintf创建输入向量,注意它是向量化的:
sprintf('V%d', 1:19)
[1] "V1" "V2" "V3" "V4" "V5" "V6" "V7" "V8" "V9" "V10" "V11" "V12"
[13] "V13" "V14" "V15" "V16" "V17" "V18" "V19"其中%d意味着这里应该替换一个整数值。
接下来,我们调用rep,在这里我们必须记住(引用rep文档):
给定(非负)次数的整数向量,用于重复每个元素if的长度‘length (X)’,或者重复整个向量的长度为1。负或NA值是一个错误。
因此,将它传递给向量19:1,会导致第一项重复19次,第二次重复18次,等等。注意,19:1创建了一个从19到1的向量。
发布于 2015-09-29 10:22:09
对于新的问题,我们可以循环1:20,得到从每个数字到20,unlist和paste与'V‘的序列。
paste0('V', unlist(lapply(1:20, function(i) i:20)))或者我们可以使用rep并删除一些元素
v1<- 1:20 +rep(0:20, each=20)
paste0('V', v1[v1 < 21])将我的评论(和@rbm的评论)作为最初问题的解决方案。
rep(paste0('V', 1:19),c(19:1))https://stackoverflow.com/questions/32822806
复制相似问题