R循环:以间隔显示数字
我有一个数据集,我想用R显示col3计算的col1和col2之间每一行的数字:R循环:以间隔显示数字,r,loops,count,range,intervals,R,Loops,Count,Range,Intervals,我有一个数据集,我想用R显示col3计算的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 看起来很琐碎,但我无法得到一个循环的工作。谢谢。试试这个: col1=c(3,9,15) col2=c(4,11,16) col3=c(2,3,2) res = NULL fo
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
看起来很琐碎,但我无法得到一个循环的工作。谢谢。试试这个:
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
unlist(Map('rep',Map(`:`,dataset[,1],dataset[,2]),each=dataset[,3])
谢谢rawr。这行代码很有效。太棒了!谢谢你的帮助。@Nanuk没问题。很高兴帮助你。