修剪不需要的字符

时间:2018-03-30 18:21:32

标签: r

我有一个非常大的数据集(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"同时保留其他信息?

提前感谢您的帮助。

2 个答案:

答案 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)