我想在以下示例中避免使用for循环。目标是使用不同的第二部分多次重复字符串向量,这会改变每次重复。这可能吗?
str2D = mtcars
Vector = c(10,20)
Dimen = dim( str2D )
nn = c()
for ( i in Dimen[2]*(1:length(Vector)) ){
nn[ (i+1-Dimen[2]): i ] = rep(paste("|d",Vector[i/Dimen[2]],sep=""), Dimen[2] )
}
Name = paste( rep(names(str2D) , length(Vector) ),nn,sep="")
"姓名"的正确结果矢量如下: " MPG | D10" "缸| D10" " DISP | D10" " HP | D10" " DRAT | D10" "重量| D10" "的QseC | D10" " VS | D10" "上午| D10" "齿轮| D10" "碳水化合物| D10" " MPG | D20" "缸| D20" " DISP | D20" " HP | D20" " DRAT | D20" "重量| D20" "的QseC | D20" " VS | D20" "上午| D20" "齿轮| D20" "碳水化合物| D20"
谢谢
答案 0 :(得分:0)
我不太明白这里的最终目标,但至少在没有循环的情况下实现了你想要的输出:
Name <- paste0(paste(names(mtcars)), "|d", rep(1:2, each = length(names(mtcars))), "0")
> Name
[1] "mpg|d10" "cyl|d10" "disp|d10" "hp|d10" "drat|d10" "wt|d10" "qsec|d10"
[8] "vs|d10" "am|d10" "gear|d10" "carb|d10" "mpg|d20" "cyl|d20" "disp|d20"
[15] "hp|d20" "drat|d20" "wt|d20" "qsec|d20" "vs|d20" "am|d20" "gear|d20"
[22] "carb|d20"