R 如何在quanteda';s";textstat“关键性”;与“相关联的功能”;日期“;

R 如何在quanteda';s";textstat“关键性”;与“相关联的功能”;日期“;,r,quanteda,R,Quanteda,它的工作方式是target=year(dfmat_news$datee)>=2016 tstat_key <- textstat_keyness(hr_dfm, measure = "chi2",sort = TRUE, correction = c("default"), target = year(dfmat_news$datee) >=

它的工作方式是
target=year(dfmat_news$datee)>=2016

tstat_key <- textstat_keyness(hr_dfm,
                          measure = "chi2",sort = TRUE, correction = c("default"),
                          target = year(dfmat_news$datee) >= 2016)
tstat_key=2016)
当我设置
target=date(dfmat_news$datee)>=2016-02-01时

它不起作用了

日期格式的日期=(YYYY-MM-DD)

如何在R Package quanteda中的函数“textstat_keyness”中设置带有日期的“target”?
非常感谢

问题在于,比较运算符(
=
)试图将数值与“日期”格式的字段进行比较
dfmat_news$datee
,这并没有产生您所期望的结果
2016-02-01
计算结果为
2013
,与用作整数时非常不同的日期字段进行比较。例如:

> as.numeric(as.Date("2016-01-01"))
[1] 16801
因此,您应该复习R中的日期操作,从
?Ops.date
开始

下面是一个可复制的示例,使用
textstat\u keyness()
以您想要的方式解决此问题。您可以看到,这适用于计算结果为逻辑表达式的表达式

库(“quanteda”)
##软件包版本:2.1.1
#这有一个日期字段,但必须安装软件包
#从https://github.com/quanteda/quanteda.corpora
数据(data\u corpus\u sotu,package=“quanteda.corpura”)
人力资源部(dfm%)
dfm_删除(停止字(“en”))
hr_dfm$日期
##  [1] "2011-01-25" "2012-01-24" "2013-02-12" "2014-01-28" "2015-01-20"
##  [6] "2016-01-12" "2017-02-28" "2018-01-30" "2019-02-05" "2020-02-04"
textstat_-keyness(hr_-dfm,target=hr_-dfm$Date>=“2016-01-01”)%%
总目()
##功能chi2 p n_目标n_参考
##1感谢65.17899 6.661338e-16 85 12
##2.33.17024 8.443305e-09 49 9
##3大28.21748 1.084209e-07 66 22
##4,21.21601 4.103217e-06 1822 1791
##5药物20.95085 4.712182e-06 21 1
##6边界20.25901 6.763404e-06 27 4
textstat_keyness(hr_dfm,target=rep(c(FALSE,TRUE),each=5))%>%
总目()
##功能chi2 p n_目标n_参考
##1感谢65.17899 6.661338e-16 85 12
##2.33.17024 8.443305e-09 49 9
##3大28.21748 1.084209e-07 66 22
##4,21.21601 4.103217e-06 1822 1791
##5药物20.95085 4.712182e-06 21 1
##6边界20.25901 6.763404e-06 27 4