我的数据框的日期格式为YYYY/MM/DD
。我尝试以两种方式对其进行分组并获得不同的值:
方法1:
a <- mydata[(mydata$Date > 2010-01-01),]
结果:
这给了我包括2008年,2009年等日期的结果
方法2:
a <- mydata[(mydata$Date > 2010/01/01),]
结果:
这给了我正确的结果。
正如您所看到的,区别在于我格式化日期的方式 - “/”与“ - ”。有人可以向我解释一下有什么区别吗?数据框中的日期本身采用YYYY-MM-DD
的形式,这就是我在方法1中使用连字符的原因。
答案 0 :(得分:1)
如果您的日期是字符值(而不是在打印到控制台时看起来不一样的因素或日期),那么您可以使用&#34;&gt;&#34;或&#34;&lt;&#34;或&#34; ==&#34;但要这样做,需要引用值的表达式。否则你只需得到算术值
> 2010-01-01
[1] 2008
不会抛出任何错误,因为您可以比较数字和字符向量,但结果不符合您的喜好:
> 2010-01-01 > "2007-01-01"
[1] TRUE
为了安全并获得有意义的结果,请尝试以下方法:
asub <- mydata[(as.character(mydata$Date > "2010-01-01"), ]
as.character
会将因子(或日期)分割的向量转换为字符。