如何应对 R 中的“非数字矩阵范围”错误?

2024-01-03

我正在尝试使用标准随机方程从学生的 t 分布生成模拟值的数据框。我使用的函数如下:

matgen<-function(means,chi,covariancematrix)
{
 cols<-ncol(means);
 normals<-mvrnorm(n=500,mu=means,Sigma = covariancematrix);
 invgammas<-rigamma(n=500,alpha=chi/2,beta=chi/2);
 gen<-as.data.frame(matrix(data=NA,ncol=cols,nrow=500));
 i<-1;
 while(i<=500)
 {
   gen[i,]<-t(means)+normals[i,]*sqrt(invgammas[i]);
   i<=i+1;
 }
return(gen);
}

如果不清楚,我正在尝试创建一个空数据框,它接受 cols 列数和 500 行中的值。当然,这些值是数字,R 告诉我在第 9 行:

gen<-as.data.frame(matrix(data=NA,ncol=cols,nrow=500));

有错误:“非数字矩阵范围”。

我记得用过as.data.frame()以前把矩阵转换成数据框,还挺顺利的。即使有数字。不过,我已经有一段时间失去联系了,似乎无法回忆或在网上找到这个问题的解决方案。我试过is.numeric(), as.numeric(), 0 而不是 NA 那里,但没有任何作用。


正如罗兰指出的,一个问题是,col 似乎不是数字。请检查mean是否是数据框或矩阵,例如str(意味着)。如果是,您的代码不应导致错误:“非数字矩阵范围”。

您的代码中还存在一些其他问题。我创建了一个简化的示例,并指出了我在代码中作为注释发现的错误:

library(MASS)
library(LearnBayes)

means <- cbind(c(1,2,3),c(4,5,6))
chi <- 10

matgen<-function(means,chi,covariancematrix)
{
  cols <- ncol(means) # if means is a dataframe or matrix, this should work

  normals <- rnorm(n=20,mean=100,sd=10) # changed example for simplification
  # normals<-mvrnorm(n=20,mu=means,Sigma = covariancematrix) 
  # input to mu of mvrnorm should be a vector, see ?mvrnorm; but this means that ncol(means) is always 1 !?

  invgammas<-rigamma(n=20,a=chi/2,b=chi/2) # changed alpha= to a and beta= to b

  gen<-as.data.frame(matrix(data=NA,ncol=cols,nrow=20))

  i<-1
  while(i<=20)
  {
    gen[i,]<-t(means)+normals[i]*sqrt(invgammas[i]) # changed normals[i,] to normals [i], because it is a vector
    i<-i+1 # changed <= to <- 
  }
  return(gen)
}

matgen(means,chi,covariancematrix)

我希望这有帮助。 附:你不需要“;”在 R 中每一行的末尾

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

如何应对 R 中的“非数字矩阵范围”错误? 的相关文章

  • 如何查找 pandas 数据框中连续相同字符串值的计数?

    假设我们有以下 pandas 数据框 df pd DataFrame col1 A gt G C gt T C gt T G gt T C gt T A gt G A gt G A gt G col2 TCT ACA TCA TCA GCT
  • 如何删除括号内的值的行?

    我正在使用以下数据框 Name Height Eric 64 Joe 67 Mike 66 Nick 72 Dave 69 Steve 73 我想删除 名称 列以左括号 开头的所有行 因此最终的数据框如下所示 Name Height Eri
  • 重叠并固定小平面中的 x 尺度(尺度=“自由”)以制作电影

    在另一篇文章中 Justin 的帮助下 我用以下方法绘制了模拟结果facet gridggplot2 中的选项 包含数据和答案的帖子在这里 使用facet grid选项通过ggplot2绘制数据框的列 https stackoverflow
  • 使用 data() 的 R 包命名空间问题 -- 找不到数据集

    我在尝试在我自己的包中导入包 即 robfilter 时遇到了问题 我尝试使用它的方法之一 adore filter 在这一行失败 data critvals 出现错误 未找到数据集 critvals 如果我通过 require robfi
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • R中不重复的组合

    我试图获取变量元素长度为 3 的所有可能组合 虽然它部分地与combn 一起工作 但我没有完全得到我正在寻找的输出 这是我的例子 x lt c a b c d e t combn c x x 3 我得到的输出看起来像这样 1 2 3 1 a
  • 如何在 Pandas 数据框中用 NaN 替换一系列值?

    我有一个巨大的数据框 我应该如何用 NaN 替换一系列值 200 100 数据框 您可以使用pd DataFrame mask https pandas pydata org pandas docs stable generated pan
  • 有条件地将字符串转换为特定数值

    我确信对此有一个简单的答案 但我已经扫描了堆栈溢出 但无法找到解决方案 似乎 sapply 和 ifelse 函数的组合可能可以完成这项工作 但我不确定 所以我有一个包含字符的数据框 除了一列是数值 Create dataframe whi
  • R中的引用调用(使用函数修改对象)

    我刚刚接触 R 很惊讶地发现函数不会修改对象 至少看起来这是默认的 例如 我编写了一个函数 只是为了在表格中的一个标签上粘贴一个星号 它在函数内部工作 但表本身没有改变 我主要来自Ruby 那么 在 R 中使用函数更改对象的正常 可接受的方
  • R 中的金字塔图

    对于示例数据集 我按国家 地区创建了一个金字塔图 显示人口中男性和女性超重的水平 library plotrix xy males overweight lt c 23 2 33 5 43 6 33 6 43 5 43 5 43 9 33
  • 使管道工 API 可通过互联网使用

    我对 R 中的管道工包相当陌生 我有一个可以在我的计算机上本地运行的工作 API 我可以使用以下代码从网络上的实时 JS 应用程序访问它 r lt plumb my api code r r run host 0 0 0 0 port 80
  • R 下与 Julia 的密切联系

    In my R代码 我使用MixedModels Julia包裹 我整合Julia in R使用JuliaCall包裹 我使用非常大的数据集 1 GB 4x10 6观察 和建模步骤 mixed models 分配了大量 RAM 80 GB
  • 如何格式化 Pandas 中的日期列?

    我有一个数据框df看起来像这样 ID Date 0 1 2008 01 24 1 2 2007 02 17 格式为Date is Y m d 如何将日期格式化为 m d Y format 我尝试使用此语法 但它没有给出正确的格式 df Da
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 在 Microsoft Windows 上安装 RQuantLib

    我需要安装R包RQuantLib在 Microsoft Windows 计算机上 这个包没有二进制文件 所以我下载了 tar 源 我打开它 它包含 QuantLib C 库 所以我需要编译这个包 我不想安装 Visual Studio 我使
  • 使用 geom_abline() 和 ggplot

    我是初学者ggplot2 距离我开始试验才过去 4 天 所以 如果这个问题听起来太基本了 我深表歉意 我很感激任何指导 我已经在这个问题上苦苦挣扎了大约一个小时 我正在尝试使用geom abline 如下 p lt ggplot mpg a
  • ggplot多个时间不等的时间序列

    我知道有一些与时间序列和多个数据帧相关的已回答问题 但我似乎无法弄清楚这一点 我想绘制 4 个不同压力传感器与时间的时间戳数据 pa 列 我有来自同一实验的 4 个带时间戳的压力读数 dfs 然而 由于传感器故障和数据中的其他信号 传感器收
  • 将一个 Rmarkdown 文档中的代码块插入到另一个 Rmarkdown 文档中

    我一直在举办一些小型 R 教程 研讨会 我将 挑战脚本 保存在 Rmarkdown 文档中 它们包含自由文本和 R 代码块 一些代码块是预先填充的 例如 为了设置数据集以供以后使用 而一些代码块则供与会者在研讨会期间填写代码 对于每个挑战脚
  • R data.table 中的复杂求和涉及查看其他列

    我有一个数据表 其中变量的每个值v1 and v2有一个关联的 类型 在单独的列中编码 这是一个 MWE X lt data table id 1 5 group c 1 1 2 2 2 v1 c 10 12 14 16 18 type v
  • 如何创建具有特定于每个方面的标题和副标题的分面图?

    生成一个图 该图与每列的单独图相结合 带有标题和副标题 以及每个图的垂直线 我使用直方图创建了带有垂直线的列 library ggplot2 library gridExtra library tidyr actualIris lt dat

随机推荐

  • 失败:Microsoft.AspNetCore.SpaServices[0]

    Asp net core 2 1 Angular 6应用程序 在我的Start cs文件 我们有 app UseSpa spa gt To learn more about options for serving an Angular SP
  • 函数/函子作为模板参数。它们可以存储吗?

    想象我有以下自由函数和函子 void myFreeFunction void cout lt lt Executing free function lt lt endl struct MyFunctor void operator void
  • Java - 调用屏幕键盘

    我正在开发的应用程序将在Windows 7上运行 它将用于通过触摸屏输入一些信息 每当提示用户输入信息时 我需要弹出一个屏幕键盘 我的问题是 我应该从头开始创建一个键盘类还是应该使用 Windows 7 内置屏幕键盘以及如何在 Java 应
  • 具有非标量输出的 Numpy 矢量化函数

    我正在尝试对输出列表的函数进行矢量化 我希望将 numpy 列表中的所有值提供给它 并让它返回一个矩阵 这样每一行都是输入向量中元素的输出 import numpy as np def func x n o for i in range n
  • uiautomator - 当我验证每个列表项中的文本时,无法让 ListView 滚动。当我点击屏幕上的最后一个项目时,它就失败了

    我正在尝试验证 ListView 中每个列表项中的文本 并逐一向下滚动 以便我可以验证每个列表项 但由于某种原因 我无法让它继续滚动列表来验证每个元素 有没有人有幸自动化这种操作 这是我能做到的最接近的 如果这还不够 请告诉我 UiScro
  • Docker 中使用 capybara 和 headless selenium 浏览器进行 Rails 系统测试

    TL DR 关于如何正确配置 capybara 以便能够使用默认的 Rails minitest 系统测试在 docker 容器中驱动远程 selenium 浏览器 您有什么想法吗 我在 dockerized 环境中运行 Rails 现在我
  • 如何通过浏览弹出窗口设置路径?

    我有下面的脚本 其中有两个路径 一个是目标路径 只有一个 另一个是源路径 变量 关于下面的脚本函数 我将每月运行一次 它将转到源路径 10 路径 并复制最新文件 然后复制并重命名到目标路径 所有文件通用 注意 从响应源复制的文件应按照脚本重
  • 从 javascript 客户端连接到 asp.net core signalR 服务器

    我有 asp net core web api 服务器正在传输信号器 它适用于 asp net 客户端 我试图与下面显示的代码建立连接 但它只连接到非核心服务器 它不适用于核心服务器 the hub class in the server
  • isset() 和 PHP 全局变量

    关于全局变量初始化 function hello testing global conditional random if isset conditional random echo foo is inside 全局变量 condition
  • 根据数据框中的信息在 Pandas 数据框中创建变量

    我有一个按以下方式组织的数据框 var1 var2 var3 var4 0 A 23 B 7 1 B 13 C 4 2 C 12 A 11 3 A 5 C 15 我现在想要创建一个新变量 列 var5 如果 var1 A 它采用 var2
  • 如何在react js中删除Web应用程序cookie

    我是 ReactJs 的新手 我想删除 cookie 并在注销按钮上登录会话以断开用户的会话 但我无法访问代码中的cookie 请帮忙 如果您在 JWT 的 Express 后端的登录路由中的响应上设置 cookie 并使用 httpOnl
  • 多表还是单表?

    我已经看到一些论坛有这个问题 但他们没有回答我想知道的一件事 我先解释一下我的主题 我有一个系统 其中多个用户的每个日志都输入到数据库中 例如 用户1登录 用户2登录 用户1进入用户管理 用户2更改密码等 因此 我预计每个用户每天有 100
  • 如何在 Seaborn 箱线图中加宽框?

    我正在尝试使用 Seaborn 制作分组箱线图 参考 http stanford edu mwaskom software seaborn examples grouped boxplot html 而且这些盒子都非常窄 太窄了 看不清分组
  • 如何让JProgressBar匹配Windows LaF?

    我已经工作了一段时间了JProgressBar using WindowsLookAndFeel 但我发现与原生进度条有一些主要区别 这是正常状态下的原生栏 虽然这是 Java 的 敏锐的眼睛可能会发现爪哇顶部的白色更亮 绿色也更亮一些 此
  • Blazor 输入复选框

    所以总体目标是我希望在表格上有复选框 所有不同的图案和不同类型的剪裁 男装 女装 通用 并且我希望能够检查图案 x y 和 z 然后剪裁类型男士和女士 然后将我检查过的值传递或访问到一个方法 然后该方法执行所有独特的配置 然后调用我的数据访
  • 如何在业务逻辑层实现事务

    我在我的 asp net 应用程序中使用企业库数据访问块 我想从业务逻辑层跨多个存储过程实现事务 Entlib 打开一个新连接以进行数据库访问 按以下方式使用 Transaction Scope 是否会导致分布式事务 using Trans
  • 我们可以重载Java中的main方法吗?

    我们可以超载吗main Java 中的方法 You can超载main 方法 但仅public static void main String args 当你的类被 JVM 启动时将会被使用 例如 public class Test pub
  • LINQ ToDictionary 和 ToLookup 之间有什么区别

    LINQ ToDictionary 和 ToLookup 之间有什么区别 他们似乎做同样的事情 字典是 1 1 映射 每个键映射到单个值 并且字典在事后是可变的 可编辑的 查找是一个 1 many 映射 多映射 每个键都映射到一个IEnum
  • Spotify 的自定义网络播放器

    据我所知 不可能开发一个Web应用程序 在spotify com之外 提供播放Spotify歌曲的自定义Web播放器 对吗 唯一的选择似乎仍然是 Spotify 播放按钮 但功能非常有限 然而我刚刚看到这个例子 1 http static
  • 如何应对 R 中的“非数字矩阵范围”错误?

    我正在尝试使用标准随机方程从学生的 t 分布生成模拟值的数据框 我使用的函数如下 matgen lt function means chi covariancematrix cols lt ncol means normals lt mvr