取代 Soft-deprecated funs() 的独特挑战

2024-01-05

问题:

我有一个仅由数字数据类型的变量组成的 DataFrame。我有一个例程,过去在检查 DataFrame 中的每个变量是否有统计异常值并用 NA 值替换任何已识别的异常值方面做得很好。然而,这个例程利用了最近被软弃用的 funs()。

研究过这个问题后,我知道你应该能够基本上用 list(~ example_func()) 替换 funs() 例如:

>funs(mean(., trim = .2), median(., na.rm = TRUE))
>
>Would become:
>
>list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))

不幸的是,这种补救措施在我的用例中不起作用。

功能正常但现已软弃用的代码:

以下代码有效,如下所示(对于具有离群值的变量,离群值被替换为 NA 值);但是,它会触发有关现已软弃用的 funs() 的警告:

> # Which variables have missing values
> sapply(training_imptd, function(x) sum(is.na(x)))
           INDEX      TARGET_WINS   TEAM_BATTING_H  TEAM_BATTING_2B  TEAM_BATTING_3B 
               0                0                0                0                0 
 TEAM_BATTING_HR  TEAM_BATTING_BB  TEAM_BATTING_SO  TEAM_BASERUN_SB  TEAM_BASERUN_CS 
               0                0              102              131              772 
TEAM_BATTING_HBP  TEAM_PITCHING_H TEAM_PITCHING_HR TEAM_PITCHING_BB TEAM_PITCHING_SO 
            2085                0                0                0              102 
 TEAM_FIELDING_E TEAM_FIELDING_DP 
               0              286 
> 
> # Identify outliers and set them to NA (NAs to be fixed in next step by mice)
> training_imptd <- training_imptd %>%
+   mutate_all(
+     funs(ifelse(. %in% boxplot.stats(training_imptd$.)$out, NA, .))
+   )
>
> Warning: funs() is soft deprecated as of dplyr 0.8.0
> Please use a list of either functions or lambdas: 
> 
>   # Simple named list: 
>   list(mean = mean, median = median)
> 
>   # Auto named with `tibble::lst()`: 
>   tibble::lst(mean, median)
> 
>   # Using lambdas
>   list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
> This warning is displayed once per session. 
>
> # Which variables have missing values (after imputing NA for outliers)
> sapply(training_imptd, function(x) sum(is.na(x)))
           INDEX      TARGET_WINS   TEAM_BATTING_H  TEAM_BATTING_2B  TEAM_BATTING_3B 
               0               32               67               15               29 
 TEAM_BATTING_HR  TEAM_BATTING_BB  TEAM_BATTING_SO  TEAM_BASERUN_SB  TEAM_BASERUN_CS 
               0              129              102              252              827 
TEAM_BATTING_HBP  TEAM_PITCHING_H TEAM_PITCHING_HR TEAM_PITCHING_BB TEAM_PITCHING_SO 
            2086              213                4               90              140 
 TEAM_FIELDING_E TEAM_FIELDING_DP 
             303              318 

修复后的代码应该可以工作,但没有:

根据我读到的有关用 list(~ example_func()) 替换 funs() 的内容,我希望以下代码的执行与上面利用 funs() 的代码完全相同,但事实并非如此(对于具有异常值的变量) ,异常值不会被 NA 值替换):

> # Which variables have missing values
> sapply(training_imptd, function(x) sum(is.na(x)))
           INDEX      TARGET_WINS   TEAM_BATTING_H  TEAM_BATTING_2B  TEAM_BATTING_3B 
               0                0                0                0                0 
 TEAM_BATTING_HR  TEAM_BATTING_BB  TEAM_BATTING_SO  TEAM_BASERUN_SB  TEAM_BASERUN_CS 
               0                0              102              131              772 
TEAM_BATTING_HBP  TEAM_PITCHING_H TEAM_PITCHING_HR TEAM_PITCHING_BB TEAM_PITCHING_SO 
            2085                0                0                0              102 
 TEAM_FIELDING_E TEAM_FIELDING_DP 
               0              286 
> 
> # Identify outliers and set them to NA (NAs to be fixed in next step by mice)
> training_imptd <- training_imptd %>%
+   mutate_all(
+     list(~ ifelse(. %in% boxplot.stats(training_imptd$.)$out, NA, .))
+   )
> 
> # Which variables have missing values (after imputing NA for outliers)
> sapply(training_imptd, function(x) sum(is.na(x)))
           INDEX      TARGET_WINS   TEAM_BATTING_H  TEAM_BATTING_2B  TEAM_BATTING_3B 
               0                0                0                0                0 
 TEAM_BATTING_HR  TEAM_BATTING_BB  TEAM_BATTING_SO  TEAM_BASERUN_SB  TEAM_BASERUN_CS 
               0                0              102              131              772 
TEAM_BATTING_HBP  TEAM_PITCHING_H TEAM_PITCHING_HR TEAM_PITCHING_BB TEAM_PITCHING_SO 
            2085                0                0                0              102 
 TEAM_FIELDING_E TEAM_FIELDING_DP 
               0              286 

删除不必要的training_imptd$从你的函数内部。代词.已经引用了“当前列”,因此您可以将其传递给boxplot.stats()直接地:

training_imptd %>%
  mutate_all(
    ~ifelse(. %in% boxplot.stats(.)$out, NA, .)
  )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

取代 Soft-deprecated funs() 的独特挑战 的相关文章

  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • numpy.histogram 的 hist 维度,密度 = True

    假设我有这个数组 A array 0 0019879 0 00172861 0 00527226 0 00639585 0 00242005 0 00717373 0 00371651 0 00164218 0 00034572 0 008
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

    使用 dplyr 函数对数据进行过滤 分组和变异的函数 基本管道序列在函数之外工作得很好 这就是我使用真实列名称的地方 将其放入一个函数中 其中列名称是一个变量 并且某些函数可以工作 但有些函数则不能 尤其是 dplyr filter 例如
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这

随机推荐

  • JavaScript 正则表达式 URL 仅提取域

    目前我可以使用以下正则表达式从任何 URL 中提取 域 https n www n im 不过 我也得到了我想避免的子域名 例如 如果我有网站 www google com yahoo com 某事 freds meatmarket co
  • 为什么“sail up”命令没有构建我的 laravel docker 容器?

    我正在尝试 Laravel Sail 因为我已经成功使用 Laradock 几年了 并希望简化我的开发环境设置 我使用的是 Windows 10 64 使用 WSL 2 安装了 Docker Desktop 3 0 并且我的 Laravel
  • 如何在刷新后让用户保持登录到 Firebase 应用程序?

    我有一个内置于 firebase 和 Angular 的应用程序 并且希望能够在刷新页面后保持用户登录 现在我有一个登录屏幕 其中有两个绑定到控制器的基本输入字段 this email this pass this emessage thi
  • Spring Security有Ip地址问题

    我在控制器中有一个使用以下配置的方法 RequestMapping value encore userName token method RequestMethod GET ResponseBody PreAuthorize hasIpAd
  • 使用新的 Google Jetpack 组件的最低 Android API 级别是多少

    我已经开始学习 RxJava 我知道有一些新的 Google 组件 如 LiveData 数据绑定等 我想知道使用它们的最低 Android API 级别是多少 我可以在 21 或 23 等较旧的 API 中利用它们吗 直接从文档中http
  • 无法使用 EPPlus 删除工作表

    我正在使用这段代码 ExcelPackage pck new ExcelPackage newFile var wk pck Workbook Worksheets SingleOrDefault x gt x Name Content p
  • jquery validate 添加方法来验证日期时间

    我正在使用我找到的日期时间选择器插件here http trentrichardson com examples timepicker 效果很好 现在唯一的问题是它破坏了包含的标准日期验证jquery 验证插件 http docs jque
  • 在调试器中查看 DLL 中的 pimpl

    我使用 pimpl 习惯用法来隐藏接口的实现细节 以便我可以采取某种 ABI 保护措施 我不太熟悉 MS 的来龙去脉 我的大部分开发生涯都使用 Linux 我无法从调试器检查窗口查看 pimpl 的内部 我的类型仅扩展至 impl 的原始指
  • Google App Engine ( Java ):URL 提取响应太大问题

    我正在尝试在谷歌应用程序上构建某种网络服务 现在的问题是 我需要从网站获取数据 HTML 抓取 该请求如下所示 URL url new URL p url con HttpURLConnection url openConnection I
  • 计算循环空间复杂度的基础是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 想象一下 您循环 n 次 并且每次迭代都会创建一个空间 n 的字符串 其范围仅在该迭代内 因此在下一次迭代中不再可访问 我会说我使用 O
  • 在插入大量数据时关闭node.js中的mongodb连接

    我正在尝试编写一个程序来解析 iis 日志数据并将其插入到 mongodb 中 文件不是那么大 大约 600 行 试图说服我的管理 Nodejs 和 mongodb 比 net 和 sql server 更好 在nodejs中看一下下面的代
  • 在 React Bootstrap 中设置 Form.Check(复选框)控件的样式

    我是反应和引导程序的初学者 我想知道 如何设计 Form Check 复选框 的样式 以便可以用更好的样式覆盖默认的外观和感觉 比如开关或任何其他外观和感觉 这就是我尝试过的 我使用了 css 样式 但它没有按预期工作 MyForm js
  • iOS 5 JSON 解析导致 Cocoa 错误 3840

    我很难在 iOS 5 上解析下面的 JSON 字符串 States Name Arizona Cities Name Phoenix Name California Cities Name Orange County Name Rivers
  • 如何访问Android应用程序的classes.dex?

    当活动启动时 系统会加载classes dex文件并开始执行指令 我需要对当前活动正在执行的同一应用程序的classes dex 进行只读访问 在网上搜索了几个小时后 我只能推断Android安全系统不允许访问应用程序沙箱 但是 我需要对c
  • WebMethod 自动将类对象返回为 JSON

    谁能解释一下 ASP NET 如何处理从类对象到 WebMethods 中的 JSON 对象的转换 例如 您有以下 WebMethod 它返回一个Person object WebMethod public static Person Ge
  • scala:跟踪隐式选择和其他代码魔法

    当试图弄清楚库如何工作时 隐式转换会令人困惑 例如 查看像 val foo Foo 1 这样的表达式 什么将 1 转换为 Foo 是否可以指示 scala 库 或 REPL 打印出在计算表达式时正在执行的代码路径 您可以将 Xprint t
  • 正确计算发送到死信SQS队列的消息数

    我希望 grafana 报告在任何给定时间死信队列中有多少消息 由于最终在此队列中的消息的性质 将评估和解析最终在此队列中的消息 我已将 grafana 配置为读取NumberOfMessagesSent from a dead lette
  • 方法在哪里?堆栈还是堆?

    我知道方法的局部变量和参数位于堆栈中 但我无法弄清楚在 Java 中方法实际上位于哪里 如果我声明任何 Thread 对象 例如 Thread t new Thread t start 所以这意味着我已经创建了除主方法之外的单独的方法调用
  • 找不到 TypeScript 编译器

    我正在使用 Visual Studio 2012 和 TypeScript 版本 0 9 5 我也在使用 web Essentials 2 8 当我尝试保存 TypeScript 文件后 它显示 编译错误 详细信息请参见错误列表 找不到 T
  • 取代 Soft-deprecated funs() 的独特挑战

    问题 我有一个仅由数字数据类型的变量组成的 DataFrame 我有一个例程 过去在检查 DataFrame 中的每个变量是否有统计异常值并用 NA 值替换任何已识别的异常值方面做得很好 然而 这个例程利用了最近被软弃用的 funs 研究过