我有两个向量:
Start = c(1,10,20)
Finish = c(9,19,30)
Run Code Online (Sandbox Code Playgroud)
我希望这样的东西能起作用......
开始:完成
但当然不是.
我想生成如下列表:
[1] 1,2,3,4,5,6,7,8,9
[2] 10 11 12 13 14 15 16 17 18 19
[3] 20 21 22 23 24 25 26 27 28 29 30
Run Code Online (Sandbox Code Playgroud)
优选地以某种矢量化方式.Start矢量将始终大于相应元素的Finish矢量.
A5C*_*2T1 16
只需使用mapply:
Start = c(1,10,20)
Finish = c(9,19,30)
mapply(":", Start, Finish)
## [[1]]
## [1] 1 2 3 4 5 6 7 8 9
##
## [[2]]
## [1] 10 11 12 13 14 15 16 17 18 19
##
## [[3]]
## [1] 20 21 22 23 24 25 26 27 28 29 30
##
Run Code Online (Sandbox Code Playgroud)
当然,你也可以使用Vectorize,但这只是一个包装mapply.但是,Vectorize不能与原始函数一起使用,因此您必须指定seq.default而不是seq,或seq.int.
例:
Vectorize(seq.default)(Start, Finish)
## [[1]]
## [1] 1 2 3 4 5 6 7 8 9
##
## [[2]]
## [1] 10 11 12 13 14 15 16 17 18 19
##
## [[3]]
## [1] 20 21 22 23 24 25 26 27 28 29 30
##
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |