我有一个数据集,其中包含一些日期时间"{datetime:2015-07-01 09:10:00"
所以我想删除文本,然后保留日期& as.Date
的时间仅返回日期。所以我写这段代码,但我唯一的问题是在strsplit的第二行,它只返回第一行的日期时间,所以擦掉其他...我很想得到我所有的约会时间不仅首先。我也许考虑过,但我无法做对,我有很多错误,或者可能有一个循环?我是R的新手,所以我真的不知道如何以最好的方式做到这一点。
data$`Date Time`=as.character(data$`Date Time`)
data$`Date Time`=unlist(strsplit(data[,1], split='e:'))[2]
date=substr(data$`Date Time`,0,10)
date=as.Date(date)
time=substr(data$`Date Time`,12,19)
data$Date=date
data$Time=time
非常感谢你的帮助!
答案 0 :(得分:7)
您可以使用format
参数来避免所有strsplit:
times <- as.POSIXct(data$`Date Time`, format='{datetime:%Y-%m-%d %H:%M:%S')
(&#34; {datetime:&#34;格式的原因是因为你提到这是你的字符串的格式)。
此对象包含日期和时间,然后您可以将其作为POSIXct类型的单个列存储在数据框中,而不是两个类型为string的列,例如。
data$datetime <- times
但如果您确实希望将日期存储为日期,将时间存储为字符串(如上例所示):
data$Date <- as.Date(times)
data$Time <- strftime(times, format='%H:%M:%S')
有关?as.Date
参数的详细信息以及日期和字符串之间的各种转换,请参阅?as.POSIXct
,?strptime
,format
。