R语言中实现逐行重复3次的方法求助
R语言中实现逐行重复3次的方法求助
嗨,我来帮你搞定这个问题~你说用rep()的时候重复了整个数据3次,应该是没用到正确的参数导致的,别担心,其实rep()本身就有能实现你需求的功能!
你想要的是每个元素单独重复3次,而不是把整个序列重复3次,这时候只需要用到rep()的each参数就可以啦。举个例子:
首先定义你的原始数据向量:
x <- c(1, 2, 3, 4, 5)
然后用带each参数的rep():
rep(x, each = 3)
运行之后就会得到你想要的结果:1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
这里要区分一下each和times参数:
times是默认参数,比如rep(x, times = 3)会把整个向量重复3次,也就是你之前得到的1 2 3 4 5 1 2 3 4 5 1 2 3 4 5,这不是你要的效果;each则是针对每个元素,让每个元素都重复指定的次数,正好符合你的需求。
如果你的数据是数据框,想要逐行重复3次的话,也可以用类似的思路:
# 假设df是你的数据框 df[rep(seq(nrow(df)), each = 3), ]
这样就能把数据框的每一行都重复3次啦~
备注:内容来源于stack exchange,提问作者frank lu
相关产品推荐
相关产品推荐

