R 数据$colname和数据[,“colname”之间的差异

R 数据$colname和数据[,“colname”之间的差异,r,as.date,R,As.date,我试图使用as.date函数将字符列转换为日期列。当我输入as.Date(data$colname)时,它会工作。但是,当我输入as.Date(数据[,“colname]”)时,返回 不知道如何将“data[,“colname”]”转换为类“Date” 为什么对第二种选择不起作用 如何更改第二个选项以使其工作 最后,我想在以列名为参数的函数中使用as.Date。那样的话,我不知道如何使用$ 谢谢 我的数据样本: structure(list(colname = structure(c(10140

我试图使用
as.date
函数将字符列转换为日期列。当我输入
as.Date(data$colname)
时,它会工作。但是,当我输入
as.Date(数据[,“colname]”)时,
返回

不知道如何将“data[,“colname”]”转换为类“Date”

  • 为什么对第二种选择不起作用
  • 如何更改第二个选项以使其工作
  • 最后,我想在以列名为参数的函数中使用
    as.Date
    。那样的话,我不知道如何使用
    $

    谢谢

    我的数据样本:

    structure(list(colname = structure(c(1014036051, 1034089765, 
    1237297478, 1260283949, 1274454601, 1580486457.445, 1581671766.241, 
    1401445496, 1279550892, 1173094955), tzone = "UTC", class = c("POSIXct", 
    "POSIXt"))), row.names = c(NA, -10L), class = c("tbl_df", "tbl", 
    "data.frame"))
    

    您可以将列名作为函数参数传入,并使用
    df[[col]]
    引用它们:

    df <- data.frame(a = c("2020-01-01", "2020-02-01"), b = 4:5, stringsAsFactors = F)
    
    class(df$a)
    # [1] "character"
    
    convert_to_date_type <- function(data, col) as.Date(data[[col]], "%Y-%m-%d")
    
    df["date"] <- convert_to_date_type(df, "a")
    
    class(df$date)
    # [1] "Date"
    

    df-Hi-Michieldo。你能提供一些复制此错误的数据示例吗?请尝试
    as.Date(data[,“colname”,drop=F])
    Hi@AllanCameron,我已经包含了我的Date列的一个示例。@Duck我尝试过你的方法,但它返回相同的错误。尝试
    as.Date(data[“colname”]])