避免循环,命名示例

时间:2015-11-28 14:21:23

标签: r loops

我想在以下示例中避免使用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"

谢谢

1 个答案:

答案 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"