Как я могу упростить мою отметку даты и времени в R? - PullRequest
0 голосов
/ 16 января 2020

Я использую RStudio. Мой фрейм данных содержит метку даты и времени, которую я хочу упростить для дальнейшего использования. Я не смог найти правильный ответ в архиве.

Вот так выглядят мои данные:

df <- read.table("datafile.csv", skip = 9, dec = ".", sep = ",", stringsAsFactors = F)
names(df) <- df[1,]
df <- df[-c(1),]
head(df)

                      Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm
    2 05 Apr 2019 09:46:13  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415
    3 11 Apr 2019 08:36:32  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555
    4 19 Apr 2019 09:24:16  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471
    5 26 Apr 2019 12:14:05  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555

Время отображается в виде символов. Теперь я хотел избавиться от отметки времени (от «% d.% M.% Y% H:% M:% S» до «% Y-% m-% d») с помощью одной из следующих команд.

(1)

df$Time <- format(as.POSIXct(strptime(df$Time,"%d.%m.%Y %H:%M:%S",tz="")) ,format = "%Y-%m-%d") head(df)
          Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
        2 <NA>  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
        3 <NA>  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
        4 <NA>  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
        5 <NA>  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690

(2)

df$Time = as.Date((df$Time), format = "%Y-%m-%d") head(df)
  Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
2 <NA>  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
3 <NA>  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
4 <NA>  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
5 <NA>  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690

(3)

format(as.Date(strptime(df$Time, "%d.%m.%Y %H:%M:%S")), "%Y-%m-%d")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

... но, как вы можете видеть Я получаю АН только для каждого из них.

Где моя ошибка? Если у кого-то есть советы по кодированию и объяснениям, я был бы признателен.

1 Ответ

0 голосов
/ 16 января 2020

Найдена опечатка ... теперь все работает.

df$Time <- format(as.POSIXct(df$Time,"%d %b %Y %H:%M:%S",tz=""), format = "%Y-%m-%d")
 head(df)
        Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
2 2019-04-05  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
3 2019-04-11  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
4 2019-04-19  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
5 2019-04-26  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...