r - R:如何将日期存储在 data.frame 中并防止 R 将其转换为数字?
问题描述
mydat <- data.frame(id = c(1, 1, 2), date_of_entry = c(NA, NA, NA))
mydate <- structure(17189, class = "Date")
> mydate
[1] "2017-01-23"
mydate
是一个date
,我想用那个填充date_of_entry
列mydate
。id == 1
如果我尝试:
mydat$date_of_entry[mydat$id == 1] <- mydate
> mydat
id date_of_entry
1 1 17189
2 1 17189
3 2 NA
但是,我希望该date_of_entry
列包含实际日期,而不是 R 中日期的数字表示。我该怎么做呢?
解决方案
在date_of_entry
分配值之前创建 Date 类的列(当前它属于“逻辑”类)。
mydat$date_of_entry <- as.Date(mydat$date_of_entry)
mydat$date_of_entry[mydat$id == 1] <- mydate
mydat
# id date_of_entry
#1 1 2017-01-23
#2 1 2017-01-23
#3 2 <NA>
此外,这些数字是日期的数字表示,因此您也可以将它们转换为数字中的日期。
#dataframe
mydat <- data.frame(id = c(1, 1, 2), date_of_entry = c(NA, NA, NA))
#date converted to number
mydat$date_of_entry[mydat$id == 1] <- mydate
#convert it back to date
mydat$date_of_entry <- as.Date(mydat$date_of_entry)
推荐阅读
- visual-studio-code - Associate file type to my vscode extension like a project file
- python - Keras Tuner - 模型构建函数未返回有效的 Keras 模型实例
- php - PHP数组,在数组中分配两个值,第一个数据是准确的
- spring-boot - 如何使用spring框架的namedParameterJdbcTemplate检索导致异常的行
- python - 如何从每行 4 列获取 Max 中迭代 5 行并相应地设置不同列的值
- sql-server - EmployeeDataContext 类不从数据库中提取数据
- gimp - GIMP中按颜色选择的问题
- javascript - 检查小数的反应输入表单并更改值
- search - Google 分析网站搜索未按预期工作
- angular - x秒角9后停止功能