将逻辑表达式传递给R中data.table的函数
我想将一个数字量传递给一个函数,在该函数中我将使用它来选择数据表中的行。下面是一个简单的示例,其中数字金额是日期:将逻辑表达式传递给R中data.table的函数,r,function,date,data.table,arguments,R,Function,Date,Data.table,Arguments,我想将一个数字量传递给一个函数,在该函数中我将使用它来选择数据表中的行。下面是一个简单的示例,其中数字金额是日期: #' Example library(data.table) library(ggplot2) test <- function(date = NULL){ DT <- as.data.table(economics) if (!is.null(date)){ date <- as.Date(date) # See https://stackov
#' Example
library(data.table)
library(ggplot2)
test <- function(date = NULL){
DT <- as.data.table(economics)
if (!is.null(date)){
date <- as.Date(date)
# See https://stackoverflow.com/questions/21658893/subsetting-data-table-using-variables-with-same-name-as-column
DT <- DT[eval(DT[,date %in% ..date])] # Pick one date
}
DT
}
#示例
库(数据表)
图书馆(GG2)
测试试试这个:
试验截止日期(“1969-01-01”),日期<截止日期(“1970-01-01”))
集合成员(标准R)
测试(日期百分比,以%计,如日期(c)(“1969-04-01”、“1969-07-01”))
#日期pce pop psavert uempmed未就业
# 1: 1969-04-01 593.9 202161 9.7 4.0 2758
# 2: 1969-07-01 602.7 202677 11.8 4.4 2868
它没有一个特定的date
参数,但是如果您正在寻找集合成员、相等或不相等的各种组合,我认为最好“使”您使用date==1970
而不是date=1970
(这将是一个命名参数)
添加一个命名参数date=
可能是可行的,如果!缺少(日期)
,将用于集合成员资格
test2试试这个:
试验截止日期(“1969-01-01”),日期<截止日期(“1970-01-01”))
集合成员(标准R)
测试(日期百分比,以%计,如日期(c)(“1969-04-01”、“1969-07-01”))
#日期pce pop psavert uempmed未就业
# 1: 1969-04-01 593.9 202161 9.7 4.0 2758
# 2: 1969-07-01 602.7 202677 11.8 4.4 2868
它没有一个特定的date
参数,但是如果您正在寻找集合成员、相等或不相等的各种组合,我认为最好“使”您使用date==1970
而不是date=1970
(这将是一个命名参数)
添加一个命名参数date=
可能是可行的,如果!缺少(日期)
,将用于集合成员资格
test2
junk <- test(date = "1970-01-01")
junk <- test(date = 1970)
DT <- DT[date %in% ..date],
DT <- DT [date ..date],
DT <- [date == 1970],
DT <- [date <= 1970]