我有一个数据集,我希望使用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循环工作。感谢。
答案 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