R 将日期和时间列合并到dd/mm/yyyy hh:mm中
R和R工作室的新成员。 我导入了一个数据集,数据集的日期和时间分为五列,标题为: YYYY MM DD hh MM 如何将这些内容组合成一个格式为dd/mm/yyyy hh:mm的日期列 数据集:R 将日期和时间列合并到dd/mm/yyyy hh:mm中,r,date,as.date,R,Date,As.date,R和R工作室的新成员。 我导入了一个数据集,数据集的日期和时间分为五列,标题为: YYYY MM DD hh MM 如何将这些内容组合成一个格式为dd/mm/yyyy hh:mm的日期列 数据集: 以下是使用lubridate软件包(一个处理日期的好软件包)的答案。您需要将各个列粘贴或连接在一个列中,擦除空白,然后使用lubridate将其从字符串格式转换为日期格式。注:我使用了dmy_hms函数(您可以根据需要从 下面是使用lubridate包(处理日期的一个很好的包)的答案。您需要将不同的列
以下是使用lubridate软件包(一个处理日期的好软件包)的答案。您需要将各个列粘贴或连接在一个列中,擦除空白,然后使用lubridate将其从字符串格式转换为日期格式。注:我使用了dmy_hms函数(您可以根据需要从
下面是使用lubridate包(处理日期的一个很好的包)的答案。您需要将不同的列粘贴或连接在一起,擦除空白,然后使用lubridate将其从字符串格式转换为日期格式。注意,我使用了dmy_hms函数(您可以根据需要从
基于@LauraKate在评论中提出的新信息和问题 下面的答案是使用包
dplyr
和ggplot2
完成的:
df <- read.table("http://www.ndbc.noaa.gov/data/realtime2/51206.txt")
names(df) <- c("YYYY", "MM", "DD", "hh", "mm", "WD", "WSPD", "V1", "GST", "WVHT", "DPD", "APD", "MWD", "BARO", "ATMP", "V2", "V3", "V4", "V5")
df2 <- df %>%
unite(date, YYYY, MM, DD, sep="-") %>%
unite(time, hh, mm, sep=":") %>%
mutate(timestamp=paste(date, time) %>%
as.POSIXct(., format="%Y-%m-%d %H:%M")) %>%
select(timestamp, ATMP)
ggplot(df2, aes(timestamp, ATMP)) + geom_line()
df%
变异(时间戳=粘贴(日期、时间)%>%
as.POSIXct(,format=“%Y-%m-%d%H:%m”))%>%
选择(时间戳,ATMP)
ggplot(df2,aes(时间戳,ATMP))+geom_线()
当每日最高温度高于26摄氏度(C)时获取警告点
df3%
突变(日期=as.date(时间戳)%%>%as.POSIXct)%%>%
分组依据(日期)%>%总结(温度=最大值(ATMP))%>%
变异(警告=ifelse(温度>26,“红色”、“黑色”))
ggplot(df2,aes(时间戳,ATMP))+
几何线()
几何点(数据=df3%>%过滤器(警告=“红色”)、aes(日期,y=27.5)、color=“红色”)
基于@LauraKate在评论中提出的新信息和问题 下面的答案是使用包
dplyr
和ggplot2
完成的:
df <- read.table("http://www.ndbc.noaa.gov/data/realtime2/51206.txt")
names(df) <- c("YYYY", "MM", "DD", "hh", "mm", "WD", "WSPD", "V1", "GST", "WVHT", "DPD", "APD", "MWD", "BARO", "ATMP", "V2", "V3", "V4", "V5")
df2 <- df %>%
unite(date, YYYY, MM, DD, sep="-") %>%
unite(time, hh, mm, sep=":") %>%
mutate(timestamp=paste(date, time) %>%
as.POSIXct(., format="%Y-%m-%d %H:%M")) %>%
select(timestamp, ATMP)
ggplot(df2, aes(timestamp, ATMP)) + geom_line()
df%
变异(时间戳=粘贴(日期、时间)%>%
as.POSIXct(,format=“%Y-%m-%d%H:%m”))%>%
选择(时间戳,ATMP)
ggplot(df2,aes(时间戳,ATMP))+geom_线()
当每日最高温度高于26摄氏度(C)时获取警告点
df3%
突变(日期=as.date(时间戳)%%>%as.POSIXct)%%>%
分组依据(日期)%>%总结(温度=最大值(ATMP))%>%
变异(警告=ifelse(温度>26,“红色”、“黑色”))
ggplot(df2,aes(时间戳,ATMP))+
几何线()
几何点(数据=df3%>%过滤器(警告=“红色”)、aes(日期,y=27.5)、color=“红色”)
您可以使用它
库(dplyr)
图书馆(lubridate)
df#A tible:10 x 6
#>YYYY MM DD hh MM日期\时间
#>
#> 1 2007 8 11 4 27 2007-08-11 04:27:00
#> 2 2002 7 5 23 51 2002-07-05 23:51:00
#> 3 2006 2 25 12 45 2006-02-25 12:45:00
#> 4 2008 10 1 1 1 2008-10-01 01:01:00
#> 5 2000 1 28 10 42 2000-01-28 10:42:00
#> 6 2010 4 12 21 37 2010-04-12 21:37:00
#> 7 2013 12 8 16 58 2013-12-08 16:58:00
#> 8 2014 5 17 18 56 2014-05-17 18:56:00
#> 9 2009 9 27 20 36 2009-09-27 20:36:00
#> 10 2001 3 14 14 14 2001-03-14 14:14:00
您可以使用它
库(dplyr)
图书馆(lubridate)
df#A tible:10 x 6
#>YYYY MM DD hh MM日期\时间
#>
#> 1 2007 8 11 4 27 2007-08-11 04:27:00
#> 2 2002 7 5 23 51 2002-07-05 23:51:00
#> 3 2006 2 25 12 45 2006-02-25 12:45:00
#> 4 2008 10 1 1 1 2008-10-01 01:01:00
#> 5 2000 1 28 10 42 2000-01-28 10:42:00
#> 6 2010 4 12 21 37 2010-04-12 21:37:00
#> 7 2013 12 8 16 58 2013-12-08 16:58:00
#> 8 2014 5 17 18 56 2014-05-17 18:56:00
#> 9 2009 9 27 20 36 2009-09-27 20:36:00
#> 10 2001 3 14 14 14 2001-03-14 14:14:00
请举例说明您的数据是什么样子的?您可以使用lubridate,例如,假设一列是日期,另一列是时间:library(lubridate);df我已经附上了问题中数据集的图像。很抱歉,这不是第一次上传。我不知道lubridate是否可以工作,因为日期的每个元素都在一个单独的列中,所以有5个不同的列?在将来复制并粘贴几行数据,而不是图片,以帮助试图帮助您的人请提供一个wha示例您的数据看起来像什么?您可以使用lubridate,例如,假设一列是日期,另一列是时间:library(lubridate);df我附上了问题中数据集的图像。很抱歉,这不是第一次上传。我不知道lubridate是否可以工作,因为日期的每个元素都在一个单独的列中,所以有5个不同的列?在将来复制并粘贴几行数据,而不是一张图片,以帮助试图帮助你的人。谢谢。我将有一个尽管如此,我对这个项目感到非常不知所措。我对R非常陌生,需要从中获取实时数据,并创建一个只包含WTMP(临时)日期的绘图如果需要的话,我可能会删掉其他列。然后我需要在26度的图上画一条线性线,以显示最大值,然后让r打印一条警告,当温度高于26度时。有人想帮忙吗?哈哈,有什么建议和提示吗?再问一个问题亚当·奎克正在帮我解决上面的问题。非常感谢。我会试试的感觉被这个项目压得喘不过气来。我对R非常陌生,需要从中获取实时数据,并创建一个只包含WTMP(临时)日期的绘图如果需要的话,我可能会删掉其他列。然后我需要在26度的图上画一条线性线,以显示最大值,然后让r打印一条警告,当温度高于26度时。有人想帮忙吗?哈哈,有什么建议和提示吗?再问一个问题亚当·奎克正在帮我解决上面的问题。非常感谢你!我知道了
df3 <- df2 %>%
mutate(date=as.Date(timestamp) %>% as.POSIXct) %>%
group_by(date) %>% summarise(temp=max(ATMP)) %>%
mutate(warnings = ifelse(temp > 26, "red", "black"))
ggplot(df2, aes(timestamp, ATMP)) +
geom_line() +
geom_point(data=df3 %>% filter(warnings=="red"), aes(date, y=27.5), color="red")