我有一个csv数据集,其中包含一个包含日期的列。将数据集导入R后,我们需要根据特定日期范围对数据集进行子集化。
app1110 <- read.csv("file_11102015.csv")
app1110$appcom_date2 <- app1110$APPLICATION..COMPLETED..DATE
然后我们尝试了1)
app1110$appcom_date2 <- format(as.POSIXct(app1110$appcom_date2, format= "%m/%d/%Y"), format="%m/%d/%Y")
subset(app1110, as.Date(appcom_date2 < "12/30/2013"))
错误消息:
as.Date.default出错(appcom_date2&lt;&#34; 12/30/2013&#34;):不知道 如何转换&#39; appcom_date2&lt; &#34; 12 /二千零一十三分之三十零&#34;&#39;上课“日期”
那么我如何根据日期范围对数据进行子集化?
答案 0 :(得分:1)
在没有看到您的数据的情况下,我怀疑您需要更改此信息:
as.Date(appcom_date2 < "12/30/2013")
到此:
appcom_date2 < as.Date("12/30/2013", "%M/%d/%Y")
或者更好的是:
appcom_date2 < as.Date("2013-12-30")
关键是您需要将字符串("12/30/2013"
)强制转换为Date
对象,然后进行比较。
答案 1 :(得分:0)
谢谢,问题是比较字符和日期类型。这修好了它:
app1110 $ appcom_date2&lt; - as.Date(app1110 $ appcom_date2, format =“%m /%d /%Y”)子集(app1110,appcom_date2&lt; as.Date(“2013-12-31”) &安培; appcom_date2&gt; as.Date( “2013年6月1日”))
还有一个问题:在进行子集化时,我使用appcom_date2变量作为设置句点的标准。 如何指定从该变量中排除所有NA值?