mean(x, na.rm = TRUE) 的错误结果

2023-12-03

我想计算一系列经理回报的平均值、最小值和最大值,如下所示:

ManagerRet <-data.frame(diff(Managerprices)/lag(Managerprices,k=-1))

然后,我将 return = 0 替换为 NaN,因为数据是从数据库中提取的,并且并未填充所有日期。

ManagerRet = replace(ManagerRet,ManagerRet==0,NaN)

我有以下3个功能

> min(ManagerRet,na.rm = TRUE)
[1] -0.0091716

> max(ManagerRet,na.rm = TRUE)
[1] 0.007565

> mean(ManagerRet,na.rm = TRUE)*252
[1] NaN

为什么mean函数返回NaN值,而min和max计算正确?

下面你可以找到动物园对象 MangerRet

> ManagerRet
               Manager
2011-10-04         NaN
2011-10-05         NaN
2011-10-06         NaN
2011-10-07         NaN
2011-10-11         NaN
2011-10-12         NaN
2011-10-13         NaN
2011-10-14         NaN
2011-10-17         NaN
2011-10-18         NaN
2011-10-19         NaN
2011-10-20         NaN
2011-10-21         NaN
2011-10-24         NaN
2011-10-25         NaN
2011-10-26         NaN
2011-10-27         NaN
2011-10-28         NaN
2011-10-31  6.3832e-04
2011-11-01 -4.4625e-06
2011-11-02  2.8142e-03
2011-11-03  5.1114e-04
2011-11-04 -1.0105e-03
2011-11-07  7.5650e-03
2011-11-08  2.1002e-03
2011-11-09 -9.1716e-03
2011-11-10  1.1173e-03
2011-11-14 -6.9207e-03
2011-11-15  2.6241e-04
2011-11-16  1.7520e-03
2011-11-17 -2.6443e-05
2011-11-18 -1.4169e-03
2011-11-21  3.7602e-04
2011-11-22  4.3982e-05
2011-11-23 -6.7328e-06
2011-11-25  1.1571e-05
2011-11-28  1.4016e-07
2011-11-29 -2.0426e-07

根据需要提供额外信息

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Italian_Italy.1252  LC_CTYPE=Italian_Italy.1252   
[3] LC_MONETARY=Italian_Italy.1252 LC_NUMERIC=C                  
[5] LC_TIME=Italian_Italy.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] gWidgetsRGtk2_0.0-81       gWidgets_0.0-52           
 [3] RGtk2_2.20.25              lattice_0.20-15           
 [5] moments_0.13               data.table_1.8.8          
 [7] tseries_0.10-30            timeDate_2160.97          
 [9] PerformanceAnalytics_1.1.0 xts_0.9-3                 
[11] zoo_1.7-9                  RODBC_1.3-6               

loaded via a namespace (and not attached):
[1] grid_2.15.2    quadprog_1.5-4

你应该使用colMeans为了这:

colMeans(ManagerRet, na.rm=TRUE)
##       Manager 
## -6.826297e-05 

如果这是一个 data.frame,您将收到警告(但输出正确)。

在这里,您暴露了一种不一致的方式data.frame and a zoo对象的子集为[具有逻辑矩阵索引。这似乎是一个错误[.zoo。我已经给维护者发了电子邮件。

问题出现在这一步内mean.default:

if (na.rm) 
    x <- x[!is.na(x)]

这是出错的地方:

ManagerRet[!is.na(ManagerRet)]
##   1 
## NaN 

!is.na(ManagerRet)看起来符合预期,但事实并非如此:

class(!is.na(ManagerRet))
[1] "matrix"

这堂课出人意料[.zoo。这些行存在:

if (all(class(i) == "logical")) 
    i <- which(rep(i, length.out = n2))
else if (inherits(i, "zoo") && all(class(coredata(i)) == 
    "logical")) {
    i <- which(coredata(merge(zoo(, time(x)), i)))
}
else if (!((all(class(i) == "numeric") || all(class(i) == 
    "integer")))) 
    i <- which(MATCH(index(x), i, nomatch = 0L) > 0L)

在这种情况下,实际上运行了最后一行,产生了错误的结果。

结构:

> dput(ManagerRet)
structure(c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 0.00063832, -4.4625e-06, 
0.0028142, 0.00051114, -0.0010105, 0.007565, 0.0021002, -0.0091716, 
0.0011173, -0.0069207, 0.00026241, 0.001752, -2.6443e-05, -0.0014169, 
0.00037602, 4.3982e-05, -6.7328e-06, 1.1571e-05, 1.4016e-07, 
-2.0426e-07), .Dim = c(38L, 1L), .Dimnames = list(c("2011-10-04", 
"2011-10-05", "2011-10-06", "2011-10-07", "2011-10-11", "2011-10-12", 
"2011-10-13", "2011-10-14", "2011-10-17", "2011-10-18", "2011-10-19", 
"2011-10-20", "2011-10-21", "2011-10-24", "2011-10-25", "2011-10-26", 
"2011-10-27", "2011-10-28", "2011-10-31", "2011-11-01", "2011-11-02", 
"2011-11-03", "2011-11-04", "2011-11-07", "2011-11-08", "2011-11-09", 
"2011-11-10", "2011-11-14", "2011-11-15", "2011-11-16", "2011-11-17", 
"2011-11-18", "2011-11-21", "2011-11-22", "2011-11-23", "2011-11-25", 
"2011-11-28", "2011-11-29"), "Manager"), index = 1:38, class = "zoo")

旧代码 -colMeans是执行此操作的正确方法:用 $ 指定“列”可以解决这个问题:

mean(ManagerRet, na.rm=TRUE)
## [1] NaN
mean(ManagerRet$Manager, na.rm=TRUE)
## [1] -6.826297e-05
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mean(x, na.rm = TRUE) 的错误结果 的相关文章

  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • 如何绘制每条线之间具有特定距离的图形

    实际上 我尝试绘制一个图形 但它将所有列 线 放在一起并显示 因此它不具有代表性 我尝试制作模拟数据并向您展示我如何绘制它 并向您展示我想要的内容 我不知道如何制作像下面所示的示例的数据 但我在这里做了什么 set seed 1 M lt
  • 如何将同一行中以逗号分隔的值拆分到R中的不同行

    我有一些数据来自谷歌表格 https forms gle rGQQL3tvA1PrE4dD8我想拆分以逗号分隔的答案 and 复制参与者的 ID 数据如下 gt head data names Q2 Q3 Q4 1 PART 1 fruit
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 手动设置scale_fill_distiller()的比例

    我正在尝试制作一系列图表进行比较 举例来说 我想使用iris数据集来制作这样的图 其中我已过滤以仅查看 setosa 物种 library ggplot2 library dplyr iris gt filter Species setos
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • 按特定样本前缀对列名称向量进行子集化

    假设我有一个如下所示的数据框 ca01 lt c 1 10 ca02 lt c 2 11 ca03 lt c 3 12 stuff 1 lt rep test 10 other lt rep 9 10 data lt data frame
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • 删除字符串末尾的句点和数字

    如何删除尾随句点 后面紧跟一个数字 长度为一位或两位数字 例子 z lt c awe p 56 red 45 ted 5 you 88 tom 我只想删除 45和 5 你只需要一个简单的正则表达式 z new gsub 0 9 z 一些评论
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 获取函数的命名空间

    我正在开发一个包 我希望在其中向对象添加编辑历史记录 该包允许其他包注册用于编辑对象的函数 我正在寻找一种方法来记录注册用于编辑的函数的包的版本 问题是 给定一个函数 如何从导出的位置获取包 我的想法是调查它的搜索路径 但是search 仅
  • 如何添加链接以从我的 R闪亮应用程序在新窗口中打开 pdf 文件?

    我可以使用 a 从我的 Shiny 应用程序添加到外部站点的超链接 a google href http www google com 但如何创建一个链接来打开 pdf 或类似 文件 看起来应该很简单 但我找不到任何例子 我的问题与此类似
  • 如何在 Caret 中绘制随机森林(护林员)树

    我生成了如下所示的随机森林树 并尝试绘制它 但出现错误 我在哪里犯了错误 我怎样才能以正确的方式绘制它 Actmodel lt train Activity Section Author data CB1 method ranger trC
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • R中的重叠矩阵

    我有以下数据框 id channel 1 a 1 b 1 c 2 a 2 c 3 a 我想创建并重叠矩阵 它基本上是一个方阵 行和列标签为 a b c 表中的每个条目显示每个通道共有多少个 id 例如 在上面的例子中 矩阵看起来像 a b
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 在图中寻找桥梁 C++ (BOOST)?

    我正在阅读 BOOST 库 注意到他们没有一种算法可以在图中找到桥梁 但他们确实有一个可以找到连接点的算法 无论如何 这可以有效地完成吗 我有个主意 1 使用 BOOST 寻找关节点 2 使用out edges 找到连接每个关节点的所有边
  • Stripe 禁用按比例分配

    我的 Stripe 订阅中有两个计划 第一个计划是每月 10 欧元的计划 直到特定日期为止 例如它于 2021 年 10 月 2 日开始 我希望它于 2021 年 7 月 15 日结束 我希望订阅者每月始终支付 10 欧元 即使是最后一个月
  • 如何在默认打印机上打印测试页?

    如何在默认打印机上打印测试页 使用 C Winform 代码 提前致谢 要生成内置 Windows 测试页 您还可以对 PrintUI dll 使用 p invoke 这是一个简单的类 可以让您执行此操作 public static cla
  • 使用命令行克隆 git 存储库成功,但使用 git GUI 客户端(例如 SourceTree)克隆失败

    我已经设置了一个gitMac OS X 10 7 系统上的用户 在 git 用户 root 中 我创建了一个repositories文件夹并初始化了一个名为的裸 git 存储库test 到目前为止 一切都很好 现在 我从与 Mac 位于同一
  • 如何停止在 Spring 中覆盖 bean

    我注意到 如果您在两个 xml 文件中定义具有相同 id 的 bean 它将在第二个文件中被覆盖 Say in file a xml i have
  • 何时在 Activity 中调用 findViewById

    我遇到以下问题 我有以下几行代码 Spinner domainSpinner Spinner findViewById R id domain domainSpinner setVisibility View VISIBLE 这些在用户单击
  • 如何将图标添加到WPF应用程序桌面快捷方式?

    请注意 我问的是桌面图标 而不是窗口图标 该图标显示在应用程序窗口上 这可以 但是当我运行安装程序来安装应用程序时 桌面快捷方式只有一个默认图标 如何将桌面图标与同一应用程序图标关联 当应用程序运行时 任务栏上的图标是正确的图标 我还将 i
  • PowerShell DSC 复合资源

    我已成功创建 DSC 配置并将其部署到服务器上 下一步 我尝试将服务器中常见的配置块部分分解为可重用的部分 或者用 DSC 的说法是 复合资源 经过大量研究后 我仍然无法使用复合资源 运行 Get DSCResource 时它们没有列出 查
  • Django-south 未检测到数据库更改

    我已经从 svn 更新了我们的项目 并且有了新的迁移文件 当我使用时 work manage py schemamigration mypackage auto 我有这样的消息 Nothing seems to have changed 但
  • 返回字段长度/大小的投影选项

    我只是想写一个像 SQL 一样的 mongo 查询 SELECT LENGTH binaryBody AS bodyLength FROM documents 为此 我想我必须使用 find 方法的投影 db documents find
  • 使用 XSL-FO 和 HTML?

    我正在尝试使用 XSLT 将一些 XML 数据转换为 HTML 以完成我的学士论文 我的教授希望我也考虑 XSL FO 或者至少写一些关于它的文字 但我对此很菜鸟 所以我的问题是 我可以将 FO 与 HTML 结合起来吗 我可以使用 FOR
  • WordPress - 按日期范围获取帖子

    我正在尝试获取过去 7 30 和 365 天 WordPress 的帖子列表 这是我使用的代码 args array posts per page gt 10 post status gt publish post type gt post
  • 在 ASP.NET MVC 中强制区分大小写的路由

    这个问题是以类似但不完全相同的方式提出的 并且没有得到令我满意的解决 之前 on 堆栈溢出 and 别处 来自 Linux 世界 我想使用 ASP NET MVC 但避免使用相同但大小写不同的路由解析到同一页面 我愿意not想要强制所有路由
  • 如何在 Qt Creator 中添加可调整大小的小部件?

    如何在 Qt Creator 中添加可调整大小的小部件 特别是小部件QVBoxLayout or QHBoxLayout Example int main int argc char argv QApplication app argc a
  • CS50 Pset 7 13.sql,我无法解决,嵌套sqlite3数据库

    数据库 movie db tables 导演 movie id person id 电影 id 标题 年份 人 身份证 姓名 出生 评分 movie id 评分 投票 明星 movie id person id 你可以下载database
  • 这个应用程序是在ios 5.0下开发的,运行良好,但在ios 4.3下崩溃

    我在iOS 5 0下开发了一个iPhone应用程序 并且运行良好 但是当涉及到 iOS 4 3 Base SDK 最新的 iOS 5 0 编译器 Apple LLVM 3 0 部署目标 iOS 4 3 时 启动后就会崩溃 崩溃点周围的输出如
  • 如何使用 NSDateFormatter 的 isLenient 选项?

    我似乎无法在 StackOverflow 或网络上的其他地方找到有关此标志的任何信息 苹果自己的文档只说 如果格式化程序设置为宽松 则在解析字符串时 它会使用启发式方法来猜测预期的日期 与任何猜测一样 它可能会得到错误的结果日期 即 与预期
  • JSF 中的本地化,如何记住每个会话而不是每个请求/视图选择的区域设置

    faces config xml
  • 自更改以来的时间的高效 pandas/numpy 函数

    Given a Series 我想有效地计算自发生更改以来已经通过了多少个观察值 这是一个简单的例子 ser pd Series 1 2 1 2 1 2 1 2 2 2 2 4 3 print ser 0 1 2 1 1 2 2 1 2 3
  • mean(x, na.rm = TRUE) 的错误结果

    我想计算一系列经理回报的平均值 最小值和最大值 如下所示 ManagerRet lt data frame diff Managerprices lag Managerprices k 1 然后 我将 return 0 替换为 NaN 因为