在某些日期之间替换 R data.frame 的值?
Replace values of an R data.frame between certain Dates?
我有以下 data.frame
,并希望将 2001 年 Flow
的 replace
值设为 -1。如有任何帮助,我们将不胜感激。
library(lubridate)
library(tidyverse)
set.seed(123)
DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2005-12-31"), by = "day"),
Flow = runif(1826,1,5))
从'Date'列中提取year
,检查它是否等于2001,并替换为-1
library(lubridate)
library(dplyr)
DF <- DF %>%
mutate(Flow = replace(Flow, year(Date) == 2001, -1))
或使用 base R
- 通过 format
的标准使用获取 'Year' 部分,并使用“2001”进行检查以创建逻辑向量并分配那些 'Flow' 元素到 -1
DF$Flow[format(DF$Date, '%Y') %in% '2001'] <- -1
基础 R 选项 -
使用grepl
/grep
查找以2001开头的行,并将Flow
值更改为-1。
DF$Flow[grep('^2001', DF$Date)] <- -1
DF
我有以下 data.frame
,并希望将 2001 年 Flow
的 replace
值设为 -1。如有任何帮助,我们将不胜感激。
library(lubridate)
library(tidyverse)
set.seed(123)
DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2005-12-31"), by = "day"),
Flow = runif(1826,1,5))
从'Date'列中提取year
,检查它是否等于2001,并替换为-1
library(lubridate)
library(dplyr)
DF <- DF %>%
mutate(Flow = replace(Flow, year(Date) == 2001, -1))
或使用 base R
- 通过 format
的标准使用获取 'Year' 部分,并使用“2001”进行检查以创建逻辑向量并分配那些 'Flow' 元素到 -1
DF$Flow[format(DF$Date, '%Y') %in% '2001'] <- -1
基础 R 选项 -
使用grepl
/grep
查找以2001开头的行,并将Flow
值更改为-1。
DF$Flow[grep('^2001', DF$Date)] <- -1
DF