Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将日期和时间列合并到dd/mm/yyyy hh:mm中_R_Date_As.date - Fatal编程技术网

R 将日期和时间列合并到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包(处理日期的一个很好的包)的答案。您需要将不同的列

R和R工作室的新成员。 我导入了一个数据集,数据集的日期和时间分为五列,标题为: YYYY MM DD hh MM 如何将这些内容组合成一个格式为dd/mm/yyyy hh:mm的日期列

数据集:


以下是使用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")