【问题标题】:dplyr to replace all variable which matches specific stringdplyr 替换与特定字符串匹配的所有变量
【发布时间】:2017-12-19 01:47:21
【问题描述】:

是否有等效的dplyr 可以做到这一点?我正在寻找匹配字符串 xxx 和 NA 的“全部替换”

is.na(df) <- df=="xxx" 

我想使用从 R 到 Spark 数据帧的管道函数执行 sparklyr 命令

tbl(sc,"df") %>%

并坚持上面的第一个脚本不起作用。

【问题讨论】:

  • 您想用指定的字符串替换 NA 值吗?还是反过来?你的第一句话让我很困惑。
  • 用字符串“xxx”替换所有变量为NA。第一个脚本是将 NA 分配给 df 中匹配“xxx”的所有变量

标签: r apache-spark dplyr null sparklyr


【解决方案1】:

将“XXX”替换为您要查找的字符串:

#Using dplyr piping
library(dplyr)
df[] = df %>% lapply(., function(x) ifelse(grepl("XXX", x), NA, x))

#Using only the base package
df[] = lapply(df, function(x) ifelse(grepl("XXX", x), NA, x))

此方法逐一评估数据框中的每一列,并应用该函数查找“XXX”并将其替换为 NA。

【讨论】:

  • 运行管道,然后收集(从 Spark 到本地 R 数据帧)给我一个错误“UseMethod(“collect”)错误:没有适用于“收集”的方法应用于类对象“列表”。所以即兴作为.data.frame(do.call(cbind, lapply(.,function(x)ifelse(grepl("xxx",x)==T,NA,x))), stringsAsFactors=FALSE) ,并且没有一个“xxx”被转换​​为NA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 2019-06-21
  • 1970-01-01
  • 2020-06-23
  • 2011-10-23
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多