R 如何从字符串中获取日期信息,然后通过测试按主题捕获最早的结果

R 如何从字符串中获取日期信息,然后通过测试按主题捕获最早的结果,r,date,R,Date,我有一个data.frame,看起来像这样: 我想建立一些变量来捕捉每个测试的最早日期和分数。我需要在变量Time之外为信息添加日期。然后捕获每个测试的日期。对于测试结果,如果在同一日期进行了两次相同的测试,得分分别为a和b,则将其记录为a+b。我想要的结果是这样的: 我卡在了第一个位置,那就是从时间中获取日期信息 我的代码是: df1$date<- as.Date(df1$Time, format = "%Y-%B-%dT%H:%M") 非常感谢,节日快乐 在创

我有一个data.frame,看起来像这样:

我想建立一些变量来捕捉每个测试的最早日期和分数。我需要在变量
Time
之外为信息添加日期。然后捕获每个测试的日期。对于测试结果,如果在同一日期进行了两次相同的测试,得分分别为
a
b
,则将其记录为
a+b
。我想要的结果是这样的:

我卡在了第一个位置,那就是从
时间
中获取日期信息

我的代码是:

df1$date<- as.Date(df1$Time, format = "%Y-%B-%dT%H:%M")

非常感谢,节日快乐

在创建按“ID”和“test”分组的列后,我们可以使用
pivot\u

library(dplyr)
library(tidyr)
library(stringr)
out <- df %>%
   mutate(Date = as.Date(Time)) %>% 
   group_by(ID, test) %>%
   mutate(time = as.Date(max(Date)),
          level = str_c(score[Time == max(Date)], collapse="+")) %>% 
   ungroup %>% 
   pivot_wider(names_from = test, values_from = c(time, level))
库(dplyr)
图书馆(tidyr)
图书馆(stringr)
超出%
突变(日期=as.Date(时间))%>%
分组依据(ID,测试)%>%
变异(时间=截止日期(最大日期)),
级别=str_c(分数[时间==max(日期)],折叠=“+”)%>%
解组%>%
枢轴(名称=测试,值=c(时间,级别))

@Stataq更新为
paste
str\u c
pivot\u wide
感到惊讶。谢谢你的介绍。节日快乐@Stataq您的时间列格式为
2016-03-16T10:22
,即
%Y-%m-%dT%H:%m
@Stataq同样,在这种情况下,您不需要该格式,因为
as.Date
只检查格式正确的日期部分,即
as.Date(df$Time)#[1]“2016-03-16”..
@Stataq也将较短的格式版本设置为
as.Date(df$Time,format=“%FT%H:%M”)
。请注意,如果是
%H:%M%S
,则可以使用
作为.Date(df$Time,format=“%FT%T”)
library(dplyr)
library(tidyr)
library(stringr)
out <- df %>%
   mutate(Date = as.Date(Time)) %>% 
   group_by(ID, test) %>%
   mutate(time = as.Date(max(Date)),
          level = str_c(score[Time == max(Date)], collapse="+")) %>% 
   ungroup %>% 
   pivot_wider(names_from = test, values_from = c(time, level))