R 如果需求不是';t遇见
我已经使用了相当多的代码,当某些需求没有得到满足时会突出显示,或者告诉我哪些条目是重复的,但是我还没有弄清楚如果一个需求没有得到满足时如何进行编码 我使用的是一个相对平均的数据帧,其中包括日期。通常每天应该有24个条目,即每小时一个条目。但在某些情况下,有更多或更少。我需要一些东西来告诉我哪些条目号/数据不符合24条条目的标准。有人对如何处理这个问题有什么建议吗 我在下面附上了一个到目前为止我一直在使用的代码示例(用于实现其他功能)R 如果需求不是';t遇见,r,dataframe,R,Dataframe,我已经使用了相当多的代码,当某些需求没有得到满足时会突出显示,或者告诉我哪些条目是重复的,但是我还没有弄清楚如果一个需求没有得到满足时如何进行编码 我使用的是一个相对平均的数据帧,其中包括日期。通常每天应该有24个条目,即每小时一个条目。但在某些情况下,有更多或更少。我需要一些东西来告诉我哪些条目号/数据不符合24条条目的标准。有人对如何处理这个问题有什么建议吗 我在下面附上了一个到目前为止我一直在使用的代码示例(用于实现其他功能) 在这种情况下,第10个项目的数据有24个条目,但第11个项目只
在这种情况下,第10个项目的数据有24个条目,但第11个项目只有26个条目,第12个项目有23个条目。我需要一些东西来提醒我这个事实,例如,给出日期11/05/1973和12/05/1973(类似于我为缺失值代码生成的输出)。使用
dplyr
library(dplyr)
df %>%
group_by(dates = gsub('\\s+.*', '', OB_DATE)) %>%
summarise(new = n())
# A tibble: 3 × 2
# dates new
# <chr> <int>
#1 1973-09-05 24
#2 1973-10-05 26
#3 1973-11-05 23
使用
dplyr
library(dplyr)
df %>%
group_by(dates = gsub('\\s+.*', '', OB_DATE)) %>%
summarise(new = n())
# A tibble: 3 × 2
# dates new
# <chr> <int>
#1 1973-09-05 24
#2 1973-10-05 26
#3 1973-11-05 23
我们可以使用
data.table
library(data.table)
setDT(df)[, new := as.integer(.N==24), by = .(Date=as.IDate(OB_DATE, "%m/%d/%Y %H:%M"))]
head(df)
# OB_DATE AIR_TEMPERATURE new
#1: 09/05/1973 00:00 10.0 1
#2: 09/05/1973 01:00 10.2 1
#3: 09/05/1973 02:00 10.0 1
#4: 09/05/1973 03:00 10.0 1
#5: 09/05/1973 04:00 9.9 1
#6: 09/05/1973 05:00 9.9 1
我们可以使用
data.table
library(data.table)
setDT(df)[, new := as.integer(.N==24), by = .(Date=as.IDate(OB_DATE, "%m/%d/%Y %H:%M"))]
head(df)
# OB_DATE AIR_TEMPERATURE new
#1: 09/05/1973 00:00 10.0 1
#2: 09/05/1973 01:00 10.2 1
#3: 09/05/1973 02:00 10.0 1
#4: 09/05/1973 03:00 10.0 1
#5: 09/05/1973 04:00 9.9 1
#6: 09/05/1973 05:00 9.9 1
谢谢,鉴于涉及的数据量巨大,您的第一个选项以最简洁的方式提供了信息。我必须添加
as.data.frame
,以便查看每个条目(tibble将其限制为仅10个)-否则它是完美的。谢谢,鉴于涉及的数据量巨大,您的第一个选项以最简洁的方式提供信息。我确实需要添加as.data.frame
,以便查看每个条目(tibble将其限制为仅10条)-否则它是完美的。
library(data.table)
setDT(df)[, new := as.integer(.N==24), by = .(Date=as.IDate(OB_DATE, "%m/%d/%Y %H:%M"))]
head(df)
# OB_DATE AIR_TEMPERATURE new
#1: 09/05/1973 00:00 10.0 1
#2: 09/05/1973 01:00 10.2 1
#3: 09/05/1973 02:00 10.0 1
#4: 09/05/1973 03:00 10.0 1
#5: 09/05/1973 04:00 9.9 1
#6: 09/05/1973 05:00 9.9 1