用r中数据框中的日期替换字符

Replace characters with dates in dataframe in r

我有一个数据框,其中日期存储为字符串。当我在终端中测试时,使用 strptime 的转换工作正常,但是当我想在原始单元格中分配日期时,出现错误:

provided 11 variables to replace 1 variables

这一定是因为 strptime() POSIXlt 创建的对象是一个列表。

如何将该对象分配到单元格中?我稍后想按日期列对数据框进行排序。

很抱歉,由于隐私限制,我无法分享代码。

编辑:此代码段应产生相同的错误

#creating dataframe
x <- c( "20.11.2019 10:12:15", "21.10.2019 10:12:16", "20.10.2019 10:12:20")
y <- c( "1234", "1238", "1250")
df <- data.frame( "date" = x, "id" = y)

df[order(df$date),] #ordering by date

df #showing that dates get ordered 'incorrectly'

df[,1] = strptime(df[,1], "%d.%m.%Y %H:%M:%S") #trying to replace character with dates while converting

#afterwards I want to order them again 'correctly'

就我个人而言,我会使用 dplyr 来改变原始单元格的值。结合 lubridate 它对我有用(至少我认为这是你想要的):

df <- df %>% mutate(date =ymd_hms(strptime(date, "%d.%m.%Y %H:%M:%S"))) %>% arrange(date)

                 date   id
1 2019-10-20 10:12:20 1250
2 2019-10-21 10:12:16 1238
3 2019-11-20 10:12:15 1234

这个简单的调整也有效。将 df[,1] 更改为 df$date

df$date = strptime(df[,1], "%d.%m.%Y %H:%M:%S")