Есть много способов сделать это.Формат "2019-04-03T20:31:47Z"
заставляет меня думать, что эти даты взяты из какого-либо файла с разделителями (CSV, TSV), поэтому лучше всего импортировать их, используя правильный тип данных:
# An example string.
s <- "2019-04-03T20:31:47Z"
# Use `colClasses` to use correct data type on import.
read.csv(text = s, header = F, col.names = "dates", colClasses = "Date")
#### OUTPUT ####
date
1 2019-04-03
Вы также можете использовать регулярные выражения, но чего-то более простого будет достаточно.Вы действительно просто хотите удалить все после T
, поэтому:
sub("T.*", "", s)
Но даты более полезны как Date
объекты, поэтому я бы порекомендовал преобразовать ваши строки.Вы можете вызвать as.Date
в приведенной выше строке после sub
bing, но as.Date
также довольно хорошо работает в одиночку (Другие дали этот ответ. Я просто включил его для полноты и потому, что я думаю,это лучшая практика, чем просто sub
bing и использование даты в качестве строки символов.) :
as.Date(s)