使用R检测多种格式的日期格式

时间:2017-08-07 04:28:49

标签: java r

我想使用R检测数据中存在的日期格式。如果单个列中存在多个格式,我还想提出一个标记。

1 个答案:

答案 0 :(得分:-1)

我目前正在使用此代码:

这些是将被识别的日期格式

dflist< -data.frame(formats = c(“%y%d%m”,“%y%m%d”,“%y-%m-%dT%H:%M:%S。 +%H:%M“,”%y-%m-%dT%H:%M:%S .-%H:%M“,”%m /%d /%y%H:%M“, “%d /%m /%y%H:%M”,“%m /%d /%Y%H:%M PM”,“%d /%m /%Y%H:%M AM”, “%m /%d /%y%H:%M PM”,“%d /%m /%y%H:%M AM”,“%m /%d /%Y%H:%M”, “%Y%b%d”,“%Y%d%b”,“%Y-%b-%d”,“%Y-%d-%b”,“%Y。%b。%d” ,“%Y。%d。%b”,“%Y /%b /%d”,“%Y /%d /%b”,“%b%d%Y”,“%b%d%y “ ”%B-%D-%Y“, ”%B-%D-%Y“, ”%b%d。%Y“, ”%b%d。%Y“,” %b / %d /%Y“,”%b /%d /%y“,”%d%b%Y“,”%d%b%y“,”%d-%b-%Y“,”%d - %B-%Y “ ”%d%b%Y“, ”%d%b%Y“, ”%d /%b /%Y“,” %d /%b /%Y。。 “,”%y%b%d“,”%y%d%b“,”%y-%b-%d“,”%y-%d-%b“,”%y。%b。% d“,”%y。%d。%b“,”%y /%b /%d“,”%y /%d /%b“,”%Y%d%m“,”%Y%m %d “ ”%Y-%D-%米“, ”%Y-%间 - %d“,” %Y-%间 - %的dT%H:%M:%S +%H:%M ”, “%Y-%间 - %的dT%H:%M:%S .-%H:%M”, “%Y.%d%M”, “%Y.%M%d”, “%Y /%d /%m”,“%Y /%m /%d”,“%d%m%Y”,“%d-%m-%Y”,“%d-%m-% Y “ ”%d。%米。%Y“, ”%d。%米。%Y“, ”%d /%米/%Y“, ”%d /%米/%Y“,” %米%d%Y“,”%m-%d-%Y“,”%m-%d-%y“,”%m。%d。%Y“,”%m。%d。%y“, “%米/%d /%Y”, “%米/%d /%Y”, “%Y-%D-%米”, “%Y-%间 - %d”,“%Y。%d %M”, “%Y。%米。%d”, “%Y /%d /%M”, “%Y /%米/%d”))

创建新列(列)并在其中存储NA

dflist $列< -NA

列fc将包含所有可用格式的列表“||”作为后缀

dflist $ FC< - 粘贴(dflist $格式, “||”,月= “”)

feed1将包含所有带“||”的条目的列表作为后缀

feed1< -as.data.frame(sapply(knime.in,function(x){paste(x,“||”,sep =“”)}))#Adding“||”在每个条目的末尾

for(i in 1:nrow(dflist)) {

尝试使用as.date函数将条目转换为日期,使用“dflist $ fc”作为格式的争论。

如果它成功转换,我们存储1,否则我们srore 0.最后我们将所有条目加起来,并得到列中某种格式的单元格的百分比

我们为列设置了80%(0.8值)的阈值,以确定具有某种日期格式。

dflist [i,“columns”]< -paste(names(feed1)[as.logical(sapply(feed1,function(x)ifelse(sum(!is.na(as.Date(as.character( x)时,格式= as.character(dflist [I, “FC”]))))>(0.9 *长度(X [!X == “NA ||”])),1,0)))] ,崩= “”) }

date_table< -dflist [C( “格式”, “列”)] T< -t(date_table)