r - 更改日期变量中的行值

标签 r date data-manipulation

我有一个看起来像这样的数据集

data <- structure(list(producer_id = c("10005", "10005", "10007", "10007", 
"10007"), date = structure(c(18297, NA, 15768, 16155, NA), class = "Date")), row.names = c(NA, 
-5L), class = c("data.table", "data.frame"))

   producer_id       date
1:       10005 2020-02-05
2:       10005       <NA>
3:       10007 2013-03-04
4:       10007 2014-03-26
5:       10007       <NA>

最终数据应如下所示:

   producer_id       date
1:       10005 2020-02-05
2:       10005 2020-30-12 # changed this value
3:       10007 2013-03-04
4:       10007 2014-03-26
5:       10007       <NA>

换句话说,我想根据条件更改具体的日期值。通常我会使用数据表并执行类似的操作。

data <– setDT(data)[producer_id==1005 & is.na(date),date:="2020-30-12"]
# or 
data <- setDT(data)[producer_id==1005 & is.na(date),date:=2020-30-12]

但是,虽然我没有收到任何错误,但这些方法不会转换数据。 有谁知道问题是什么以及我如何有效地处理它(最好使用 data.table)?

非常感谢您的帮助

最佳答案

由于您有“Date”类的date列,请将替换项更改为同一类。

library(data.table)

data[producer_id == 10005 & is.na(date),date := as.Date("2020-12-30")]
data
#   producer_id       date
#1:       10005 2020-02-05
#2:       10005 2020-12-30
#3:       10007 2013-03-04
#4:       10007 2014-03-26
#5:       10007       <NA>

关于r - 更改日期变量中的行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65506671/

相关文章:

javascript - 使用Vanilla JS动态更新页面内容

r - 根据字符值查找变量,然后将其转换为数字

r - r中数据框列条目的成对比较

r - 阈值数据和计算优势比

r - 如何在 R 中创建按变量分组的新数据表

R:如果函数内部不存在变量,则不查找函数外部的变量

Java - 格式化给定日、月和年整数的日期

ios - 如何从最后一个 .POST 按日期重新排序 tableview 单元格

algorithm - 识别具有相同星期几的年份(例如 1994、2005、2011)

c - 无法弄清楚如何隔离和替换数字