r - 使用 dplyr 仅对某些列执行操作
问题描述
我想将字符变量中的字符串转换为 NA。我可以这样做:
d3 <- d3 %>%
select_if(is.character) %>%
na_if(., "Missing") %>%
na_if(., "not done")
但它显然只保留数据集中的字符变量。如果我在没有 select_if 的情况下尝试它,我会收到错误消息:
> d3 <- d3 %>%
+ na_if(., "Missing") %>%
+ na_if(., "not done")
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
不知道为什么我会得到它,因为我有两个日期/时间变量,它们是 POSIXct 格式:
$ Date : POSIXct, format: "2015-10-26" "2015-12-07" "2016-01-19" "2016-04-11" ...
$ DOB : POSIXct, format: "1967-01-20" "1967-01-20" "1967-01-20" "1967-01-20" ...
将不胜感激一些提示。谢谢。
解决方案
如果我们想在character
列上选择性地执行此操作,同时保留其他列,请使用mutate
withacross
library(dplyr) # version 1.0.4
d3 <- d3 %>%
mutate(across(where(is.character), ~
na_if(., "Missing") %>%
na_if("not_done")))
在旧版本中dplyr
,它将是mutate_if
d3 %>%
mutate_if(is.character, ~ na_if(., "Missing") %>%
na_if("not_done"))
在较新的版本中,select_if
可以替换为
d3 %>%
select(where(is.character))
推荐阅读
- xml - 获取 XSLT 中子节点的值
- dynamics-crm - QuerySchedule WebAPI 函数调用
- python - SyntaxError:在 choropleth 映射中解析时出现意外的 EOF,有时我可以在没有任何数据的情况下加载
- c# - 视图中的 ASP.Net MVC 动态文本不更新页面
- sql - SQL 最大递归错误 (100),数据库中有 2 名员工相互报告
- matlab - Matlab:复制图例位置的“外部”缩放行为
- azure-devops - 如何使用 VSTS 修复 azure Web 应用程序部署中的 ERROR_DESTINATION_NOT_REACHABLE 错误
- excel - 如何在用户窗体文本框的分隔列表中查找列中的每个项目
- android - 使用 enableMainFragmentScaling 和 setExpand 方法的正确方法?
- json - 尝试使用'fromdate'时,jq“strptime/1 未在此平台上实现”