r - 在 R 中的同一函数中同时使用文本和参数
问题描述
首先需要创建相同的数据;
library(tibbletime)
date <- seq(from = as.Date("1979-09-01"), to = as.Date("2019-12-01"), by = "month")
n <- length(date)
df <- matrix(NA, n, 2)
df <- data.frame(df)
var <- sample(1000:5000, n)
df[1] <- date
df[2] <- var
names(df) <- c("date", "var")
df <- as_tbl_time(df, index = date)
我如何使用下面的命令;
filter_time(df, ~"1979-09")
通过 paste0, eval(parse(text = "") 我试过那个;
filter_time(eval(parse(text = paste0("df",",", "~" , "1979-09",sep = ""))))
但它没有用。我对必须为文本格式的时间对象有疑问。如果该代码有效,则可以在 for 循环中使用,谢谢。
解决方案
你也可以用as.formula()
filter_time(df, as.formula(paste0("~", '"', year, '"')))
完整的代表:
library(tibbletime)
date <- seq(from = as.Date("1979-09-01"), to = as.Date("2019-12-01"), by = "month")
n <- length(date)
df <- matrix(NA, n, 2)
df <- data.frame(df)
var <- sample(1000:5000, n)
df[1] <- date
df[2] <- var
names(df) <- c("date", "var")
df <- as_tbl_time(df, index = date)
year <- paste("1979-09")
paste0("~", '"', year, '"')
#> [1] "~\"1979-09\""
as.formula(paste0("~", '"', year, '"'))
#> ~"1979-09"
filter_time(df, as.formula(paste0("~", '"', year, '"')))
#> # A time tibble: 1 x 2
#> # Index: date
#> date var
#> <date> <int>
#> 1 1979-09-01 3600
推荐阅读
- docker - systemctl 未在 Docker 上运行
- selenium - Openshift RHEL 容器 - 运行 google-chrome 的问题
- java - JAVA中的XML生成
- mql4 - 当指标在图表中放置箭头时打开交易
- r - 如何每n行转置一个长数据帧
- javascript - HERE 折线编码:JavaScript -> Swift
- r - 在 r 中的 group_by 之后过滤
- python - 找出可以被数字 k 整除的字符串的子字符串数
- java - 如何在代码中登录 Weblogic 管理控制台
- javascript - 返回 Promise 的函数的单元测试