首页 > 解决方案 > data$colname 和 data[,"colname"] 的区别

问题描述

我正在尝试使用该as.Date函数将字符列转换为日期列。当我进入时它工作as.Date(data$colname)。但是,当我输入时as.Date(data[,"colname"])返回

不知道如何将 'data[,"colname"]' 转换为 "Date" 类</p>

  1. 为什么它不适用于第二个选项?
  2. 如何更改第二个选项以使其起作用?

最后我想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"))

标签: ras.date

解决方案


您可以将列名作为函数参数传递,并使用以下命令引用它们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"

推荐阅读