我有一个非常大的数据集(CSV),其中包含有关自行车共享系统中自行车计数的信息。我正在使用的信息是自行车从机架中取出的时间(出发时间)以及总的行程时间。我想要做的是添加它们,这样我就可以到达到达站的到达时间。出发时间变量为FECHA_HORA_RETIRO,行程时间变量为TIEMPO_USO。前者由R作为因子对象读取,其格式如下:" 23/01/2017 19:55:16"。另一方面,TI读取TIEMPO_USO作为一个字符,它采用以下格式:" 0:17:46"。
> head(viajes_ecobici_2017$FECHA_HORA_RETIRO)
[1] 28/01/2017 13:51 17/01/2017 16:24 12/01/2017 16:38 25/01/2017 10:31
> head(viajes_ecobici_2017$TIEMPO_USO)
[1] "1:35:37" "0:11:17" "0:32:51" "0:31:29" "1:31:59" "0:21:43" "0:5:43"
我首先使用strptime以所需格式获取所有内容
> viajes_ecobici_2017$FECHA_HORA_RETIRO =format(strptime(viajes_ecobici_2017$FECHA_HORA_RETIRO,format = "%d/%m/%Y %H:%M"),format = "%d/%m/%Y %H:%M:%S")
> viajes_ecobici_2017$TIEMPO_USO = format(strptime(viajes_ecobici_2017$TIEMPO_USO, format="%H:%M:%S"), format="%H:%M:%S")
这适用于大多数观察。但是,运行此代码后,一些观察值变为NA值。我回到原始数据,看看为什么会发生这种情况并创建一个变量,只有观察结果变为NA。当我仔细观察这些观察时,我看到他们有这种格式" \ t \ t01 / 06/2017 00:01"。如何摆脱" \ t \ t"同时保留其他信息?
提前感谢您的帮助。
答案 0 :(得分:1)
trimws()
从字符变量的末尾修剪空格(包括制表符,\t
):
viajes_ecobici_2017$TIEMPO_USO <- trimws(viajes_ecobici_2017$TIEMPO_USO)
对于它的价值,readr::read_csv()
有一个内置的trimws
选项(默认情况下为TRUE
)。
答案 1 :(得分:1)
假设带有问题的变量是TIEMPO_USO,那么一个简单的正则表达式将处理制表符(&#34; \ t&#34;)
viajes_ecobici_2017$TIEMPO_USO <- gsub("^\\t\\t","", viajes_ecobici_2017$TIEMPO_USO)