Python 与R中的字符串替换代码等效?

Python 与R中的字符串替换代码等效?,python,arrays,r,string,Python,Arrays,R,String,我有以下代码,可以很好地从Python列表中的元素末尾删除字符: x = ['01/01/2013 00:00:00','01/01/2013 00:00:00', '01/01/2013 00:00:00','01/01/2013 00:00:00',...] 假设是这个数组,我想删除00:00:00部分。所以,我写了这个: i = 0 while i < len(x): x[i] = x[i][:x[i].find(' 00:00:00')] i += 1

我有以下代码,可以很好地从Python列表中的元素末尾删除字符:

x = ['01/01/2013 00:00:00','01/01/2013 00:00:00',
    '01/01/2013 00:00:00','01/01/2013 00:00:00',...]
假设是这个数组,我想删除
00:00:00
部分。所以,我写了这个:

i = 0
while i < len(x):
    x[i] = x[i][:x[i].find(' 00:00:00')]
    i += 1
i=0
而i
这就成功了。如何在R中实现类似的解决方案?我尝试了
substr
gsub
,但它们运行得非常慢(实际列表中有超过250000个日期/时间组合)。

试试看

x <- rep('01/01/2013 00:00:00', 250000)
system.time(y <- sub(" 00:00:00", "", x, fixed=TRUE))
# User      System verstrichen 
# 0.05        0.00        0.05 
x试试看


x考虑一些示例数据:

set.seed(144)
dat <- sample(c("01/01/2013 00:00:00", "01/01/2013 12:34:56"), 200000, replace=T)
table(dat)
# dat
# 01/01/2013 00:00:00 01/01/2013 12:34:56 
#              100100               99900 
或者,对于这200000个日期/时间对,以下更紧凑的
gsub
命令也会在大约0.15秒内运行:

cleaned <- gsub(" 00:00:00$", "", dat)
table(cleaned)
# cleaned
#          01/01/2013 01/01/2013 12:34:56 
#              100100               99900 

cleaned考虑一些示例数据:

set.seed(144)
dat <- sample(c("01/01/2013 00:00:00", "01/01/2013 12:34:56"), 200000, replace=T)
table(dat)
# dat
# 01/01/2013 00:00:00 01/01/2013 12:34:56 
#              100100               99900 
或者,对于这200000个日期/时间对,以下更紧凑的
gsub
命令也会在大约0.15秒内运行:

cleaned <- gsub(" 00:00:00$", "", dat)
table(cleaned)
# cleaned
#          01/01/2013 01/01/2013 12:34:56 
#              100100               99900 

你只想要字符串还是解析到日期/时间如果你想要它作为一个实际的
日期
对象,你可以使用
作为.date(x,格式='%d/%m/%Y')
(或者
如果它是月/日/年,我说不出来,'%m/%d/%Y'
),你只想要字符串还是解析到日期/时间如果你想要它作为一个实际的
日期
对象,您可以使用
作为.Date(x,格式='%d/%m/%Y')
(或者
'%m/%d/%Y'
,如果是月/日/年,我不知道)。