gpt4 book ai didi

r - 使用 lubridate 和 if 语句进行日期操作

转载 作者:行者123 更新时间:2023-12-04 11:39:45 26 4
gpt4 key购买 nike

我正在努力处理一些数据操作。我的数据表中的一列包含出生日期,但对于一个位置,这些值相差 100 年。

我制作了一个示例小数据框来解释我的问题:巴黎/柏林的日期是正确的,我只想更改那些以伦敦为位置的行的日期(对于这个例子,从 2028-3-25 到 1928-3- 25)。

library(lubridate)
date <- as.Date(c('1950-11-1','2028-3-25','1940-3-14'))
location <- c("Paris", "London", "Berlin")
df <- data.frame(date, location)
df$date_new <- ifelse(df$location %in% c("London"), df$date - years(100), df$date)

如您所见,我安装了 lubridate 包并尝试使用 if else 语句,但这只会在新列中给我一些负数。

解决方案可能非常简单,但我无法弄清楚,这让我发疯。

谢谢!

最佳答案

试试这个作为替代

df$date_new <- df$date
df$date_new[df$location=="London"] <- df$date_new[df$location=="London"] - years(100)

或代替 df$date_new <- ifelse(df$location %in% c("London"), df$date - years(100), df$date)
尝试
df$date_new <- ifelse(df$location %in% c("London"), as.character(df$date - years(100)), as.character(df$date))

关于r - 使用 lubridate 和 if 语句进行日期操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41169903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com