R循环:以间隔显示数字

时间:2016-02-05 01:47:12

标签: r loops count range intervals

我有一个数据集,我希望使用R显示col3和col2之间每行的数字:

dataset=data.frame(col1=c(3,9,15), col2=c(4,11,16), col3=c(2,3,2))

我的结果应如下:

3
3
4
4
9
9
9
10
10
10
11
11
11
15
15
16
16

似乎微不足道,但我无法获得for循环工作。感谢。

2 个答案:

答案 0 :(得分:2)

或者可以使用apply

完成此操作
unlist(apply(dataset, 1, function(x) rep(x[1]:x[2], 
       each=x[3])))
#[1]  3  3  4  4  9  9  9 10 10 10 11 11 11 15 15 16 16

答案 1 :(得分:0)

试试这个:

col1=c(3,9,15)
col2=c(4,11,16)
col3=c(2,3,2)
res = NULL
for (k in 1:length(col1)){
    res = c(res, sort(rep(col1[k]:col2[k],col3[k])))
}

结果:

> res
 [1]  3  3  4  4  9  9  9 10 10 10 11 11 11 15 15 16 16