Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将逻辑表达式传递给R中data.table的函数_R_Function_Date_Data.table_Arguments - Fatal编程技术网

将逻辑表达式传递给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]