列出对R中2+变量的理解

时间:2016-09-07 16:00:09

标签: python r

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) ... ]

2 个答案:

答案 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,后者包括停止元素)。