gpt4 book ai didi

r - 有没有办法检查一列是否是 R 中的日期?

转载 作者:行者123 更新时间:2023-12-03 13:19:28 25 4
gpt4 key购买 nike

这是这个问题的伪后续:Why is ggplot graphing null percentage data points?

假设这是我的数据集:

Date        AE      AA      AEF     Percent
1/1/2012 1211 1000 3556 0.03
1/2/2012 100 2000 3221 0.43
1/3/2012 3423 10000 2343 0.54
1/4/2012 10000 3000 332 0.43
1/5/2012 2342 500 4435 0.43
1/6/2012 2342 800 2342 0.23
1/7/2012 2342 1500 1231 0.12
1/8/2012 111 2300 333
1/9/2012 1231 1313 3433
1/10/2012 3453 5654 222
1/11/2012 3453 3453 454
1/12/2012 5654 7685 3452

> str(data)
'data.frame': 12 obs. of 5 variables:
$ Date : Factor w/ 12 levels "10/11/2012","10/12/2012",..: 1 2 3 4 5 6 7 8 9 10 ...
$ AE : int 1211 100 3423 10000 2342 2342 2342 111 1231 3453 ...
$ AA : int 1000 2000 10000 3000 500 800 1500 2300 1313 5654 ...
$ AEF : int 3556 3221 2343 332 4435 2342 1231 333 3433 222 ...
$ Percent: num 0.03 0.43 0.54 0.43 0.43 0.23 0.12 NA NA NA ...

我需要说明“日期”列是日期类型,而不是数字或字符类型(这是因为我必须使用 as.Date() 将输入数据的“日期”列转换为实际日期,假设我不知道数据集的列名)。
is.numeric(data[[1]]) returns False
is.character(data[[1]]) returns False

我在 Excel 中创建了“日期”列,以“日期”格式设置该列的格式,然后将文件另存为 csv。这在 R 中是什么类型?我寻求一个类似于上述的返回 TRUE 的表达式。

最佳答案

您可以尝试将所有列强制为 as.Date看看哪些成功了。您需要指定您期望日期的格式。例如。:

data <- data.frame(
Date=c("10/11/2012","10/12/2012"),
AE=c(1211,100),
Percent=c(0.03,0.43)
)

sapply(data, function(x) !all(is.na(as.Date(as.character(x),format="%d/%m/%Y"))))
#Date AE Percent
#TRUE FALSE FALSE

关于r - 有没有办法检查一列是否是 R 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com