问题描述
我正在尝试使用as.Date
函数将字符列转换为日期列。当我输入as.Date(data$colname)
时,它可以工作。但是,当我输入as.Date(data[,"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"