如何循环非数字对象?

时间:2017-10-09 10:22:41

标签: r loops for-loop

以下是我的功能示例。

function_x<- function(t=4){
  col1<- col2<- numeric(length=t+1)
  col1[1]<- col2[1]<- 1
  for(step in 1:t){
    col1[step+1]<- col1[step]+1
    col2[step+1]<- col2[step]+3
  }
  out<- cbind(col1,col2)
  return(out)
}
function_x()

输出如下:

     col1 col2
[1,]    1    1
[2,]    2    4
[3,]    3    7
[4,]    4   10
[5,]    5   13

如何编写此循环代码的脚本,以便col1的输出可以看作是在下面?

      col1 col2
[1,]    c1    1
[2,]    c2    4
[3,]    c3    7
[4,]    c4   10
[5,]    c5   13 

非常感谢提前。

*更新*

@Roland给出的答案很有帮助,并有效地回答了问题。但是,这里提出的问题并不是我所面临的困难的实际反映。我以为我可以在代码中解决问题;我缺乏经验不允许我这样做。

以下是与我的问题相关的更相关的代码:

function_x<- function(t=9,m=0.009,n=100){
  col1<- numeric(length = t+1)
  col2<- numeric(length = t+1)
  col1[1]<- 1
  col2[1]<- n

  for(step in 1:t){
    col1[step+1]<- col1[step]+1
    col2[step+1]<- rbinom(1,col2[step],1-m)
  }
  out<- cbind(col1,col2)
  return(out)
}

其中包含以下内容:

      col1 col2
 [1,]    1  100
 [2,]    2  100
 [3,]    3   99
 [4,]    4   98
 [5,]    5   97
 [6,]    6   97
 [7,]    7   94
 [8,]    8   93
 [9,]    9   93
[10,]   10   92

如何编写代码以便结果显示:

      col1 col2
 [1,]   a1  100
 [2,]   a2  100
 [3,]   a3   99
 [4,]   a4   98
 [5,]   a5   97
 [6,]   b1   97
 [7,]   b2   94
 [8,]   b3   93
 [9,]   b4   93
[10,]   b5   92

col1[5,]符合特定条件,如b1所示,在这种情况下,序列将更改为{{1}}。

0 个答案:

没有答案