r - 如何遍历 R 中的每一行并查看是否满足更改日期格式的条件?
问题描述
我有两个数据框 A 和 B
A 的日期格式为 yyyy-mm-dd
B 的日期格式为 mm/dd/yyyy
请注意,B 混合了日期和“对照”一词,因为并非所有日期都已填充(有些是本研究的对照,没有日期)
我需要 B 的日期看起来像 A 以便在我正在做的另一部分匹配日期相等的地方,并且由于它们的格式不同,我无法将它们等同起来。
我试着说 if date != 'control' then format the date,或者为每一行做一个 for 循环,但我什么也做不了。
我应该如何处理这个?
谢谢!
解决方案
我们可以自动将两个数据集中的日期格式化为Date
类anydate
library(anytime)
A$date <- anydate(A$date)
B$date <- anydate(B$date)
或者base R
,我们可以使用正确的format
A$date <- as.Date(A$date, format = "%Y-%m-%d")
B$date <- as.Date(B$date, format = "%m/%d/%Y")
请注意,如果有任何不是标准日期格式的值,即任何字符串,它将导致NA
该元素。然后我们可以is.na
用来过滤掉那些值或者改变它
如果我们想通过排除带有“控制”的行来子集数据
i1 <- A$date != 'control'
as.Date(A$date[i1], format = "%Y-%m-%d")
同样可以对“B”进行子集化,但这并不是真正需要的,因为NA
它更容易操作
推荐阅读
- c++ - 构造函数上没有匹配的函数调用
- r - 如何估计 R 中的潜在类 logit 模型?
- php - PHP 错误:未定义的属性:当 property_exists 为 true 时 stdClass::$access_token
- android - BottomNavView 在 Fragments 之间保持隐藏 onNavigation
- java - Flask 从 spring 接收空的 Post 请求正文。错误 400
- apache-spark - Apache Spark 2.2.1 中的 Google PubSub
- python - 与容器内联启动时的 Docker Python ImportError
- python - 如何仅记录/查看循环内的中间值或连续输入一次
- excel - VBscript获取电子表格中唯一值的总数
- python - 按下按钮Pyqt5后从QtextEdit中删除文本