<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>月跨度函数 on 格物堂</title><link>https://gewutang.cn/tags/%E6%9C%88%E8%B7%A8%E5%BA%A6%E5%87%BD%E6%95%B0/</link><description>Recent content in 月跨度函数 on 格物堂</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 15 Sep 2011 00:00:00 +0000</lastBuildDate><atom:link href="https://gewutang.cn/tags/%E6%9C%88%E8%B7%A8%E5%BA%A6%E5%87%BD%E6%95%B0/index.xml" rel="self" type="application/rss+xml"/><item><title>R与月跨度函数，理论与应用的差距</title><link>https://gewutang.cn/2011/09/15/r-and-time-span-function/</link><pubDate>Thu, 15 Sep 2011 00:00:00 +0000</pubDate><guid>https://gewutang.cn/2011/09/15/r-and-time-span-function/</guid><description>&lt;p&gt;R在处理数据方面的灵活性一直都被人们赞誉。当然，理论界的人的多些，应用界的人相对较少。&lt;/p&gt;&#10;&lt;p&gt;混迹应用界的人一般会对R有更多的细节要求。比如在处理日期的时候，如果我想获取两个日期，2010年3月25日和2010年6月27日的月跨度，R里面就没有现存的函数。这一点让我意外，因为这是数据处理实务中经常遇到的问题。为什么R包的作者没有想到呢？不要抱怨，抱怨没用，这就是理论和应用的差距。&lt;/p&gt;&#10;&lt;p&gt;应用者的一切以方便为导向，理论者则不同，他们负责提供石头，建筑有时候要靠你自己去完成。&lt;/p&gt;&#10;&lt;p&gt;花了一会儿时间，找到了三个石头，length,months,seq。完成了建筑，在代码里面把2010-03-**全部处理为2010-03-01，把2010-06-**全部处理成2010-06-01。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code class="language-r"&gt;d1=&amp;quot;2010-03-25&amp;quot;&#10;d2=&amp;quot;2010-06-24&amp;quot;&#10;&#10;length(seq(from=as.Date(paste(substr(d1,1,7),&amp;quot;01&amp;quot;,sep=&amp;quot;-&amp;quot;)),&#10; to=as.Date(paste(substr(d2,1,7),&amp;quot;01&amp;quot;,sep=&amp;quot;-&amp;quot;)),&#10; by=&amp;quot;month&amp;quot;))&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;pre&gt;&lt;code&gt;## [1] 4&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;当然，也可以封装一下：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code class="language-r"&gt;month.span=function(d1,d2){&#10; date1=paste(substr(d1,1,7),&amp;quot;01&amp;quot;,sep=&amp;quot;-&amp;quot;)&#10; date2=paste(substr(d2,1,7),&amp;quot;01&amp;quot;,sep=&amp;quot;-&amp;quot;)&#10; L=length(seq(from=as.Date(date1),to=as.Date(date2),by=&amp;quot;month&amp;quot;))&#10; L&#10;}&#10;&#10;month.span(d1,d2)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;pre&gt;&lt;code&gt;## [1] 4&#10;&lt;/code&gt;&lt;/pre&gt;&#10;</description></item></channel></rss>