如何用seq()生成起始值非1且长度匹配向量的递增序列?
实现起始值为10、长度匹配myVec的递增序列
问题原因
你之前的代码如果是seq(10, length(myVec))(推测你可能写反了参数顺序),因为起始值10大于终止值3,seq默认会用步长-1生成递减序列。要得到10、11、12这样的结果,有几种简单的正确写法:
方法一:指定起始值和序列长度
直接用from指定起始值,length.out指定序列长度(和myVec一致):
seq(from = 10, length.out = length(myVec))
运行结果:[1] 10 11 12
方法二:指定起始值和终止值
因为序列长度是3,起始值10,终止值就是10 + length(myVec) - 1,直接传入seq:
seq(from = 10, to = 10 + length(myVec) - 1)
同样能得到目标序列。
方法三:算术运算简化写法
用起始值加上0到长度减1的整数序列,写法更直观:
10 + 0:(length(myVec)-1)
这个表达式会生成10+0、10+1、10+2,也就是你需要的10、11、12。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

