Python 2变量列表理解的最佳R等价物
[datetime(y,m,15) for y in xrange(2000,2020) for m in [3,6,9,12]]
结果
[datetime.datetime(2000, 3, 15, 0, 0),
datetime.datetime(2000, 6, 15, 0, 0),
datetime.datetime(2000, 9, 15, 0, 0),
datetime.datetime(2000, 12, 15, 0, 0),
datetime.datetime(2001, 3, 15, 0, 0) ... ]
答案 0 :(得分:5)
这将在R
中产生相同的结果with(expand.grid(m=c(3,6,9,12), y=2000:2020), ISOdate(y,m,15))
我们使用expand.grid
获取年份和月份的所有组合,然后我们只使用向量化的ISOdate
函数来获取值。
答案 1 :(得分:0)
另一种使用 listcompr 包表达所需结果的方法:
library(listcompr)
gen.list(ISOdate(y, m, 15), y = 2000:2019, m = c(3, 6, 9, 12))
请注意,range(a,b)
(或 Python2 中的 xrange(a, b)
)等价于 R 中的 a:(b-1)
(不包括停止元素 b
)(而不是 a:b
,后者包括停止元素)。