r - data$colname 和 data[,"colname"] 的区别
问题描述
我正在尝试使用该as.Date
函数将字符列转换为日期列。当我进入时它工作as.Date(data$colname)
。但是,当我输入时as.Date(data[,"colname"])
返回
不知道如何将 'data[,"colname"]' 转换为 "Date" 类</p>
- 为什么它不适用于第二个选项?
- 如何更改第二个选项以使其起作用?
最后我想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"
推荐阅读
- java - 静态变量在 Java 中的行为如何?我在下面解释了我的问题
- python - 无法连接服务器中的第二个客户端
- c# - 如何在单独的文件中创建类子类
- java - 如何改进这种 Java 二进制搜索方法以找到给定值的最佳百分位数?
- php - Wordpress 帖子更新不通过 wordpress 钩子更新 postmeta
- c# - 为什么我生成的带有接口的程序集实现为方法而不是属性?
- java - 如何在 Selenium WebDriver 中选择特定日期(何时:type = "date")?
- keras - 如何从变分自动编码器模型创建编码器模型?
- java - 由于 NullPointerException,TestNg 失败
- javascript - 模型似乎正在加载但不可见