R循环:以间隔显示数字

R looping: to display numbers in an interval

我有一个数据集,我想显示 col3 使用 R:

计算的 col1 和 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 循环工作。谢谢

试试这个:

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

或者这可以通过 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