在 Rcpp 中 - 如何返回带有名称的向量

2024-02-20

假设我有以下矩阵:

testM <- as.matrix(read.table(textConnection("
1  5  4  1  3  2
2  1  5  4  1  3
2  2  1  5  4  1
3  2  2  1  5  4
1  3  2  2  1  5
4  1  3  2  2  1
1  5  4  1  3  2
2  1  5  4  1  3
2  2  1  5  4  1
3  2  2  1  5  4
1  3  2  2  1  5
4  1  3  2  2  1
")))

该矩阵有列名V1 to V6

假设还有另一个矩阵,我在其中删除了列名称:

> testM2<-testM
> colnames(testM2)<-NULL

那么如果我尝试colMeans on testM and testM2R 返回一个numeric两种情况下的类,除了第一种情况答案有colnames.

> colMeans(testM)
      V1       V2       V3       V4       V5       V6 
2.166667 2.333333 2.833333 2.500000 2.666667 2.666667 
> colMeans(testM2)
[1] 2.166667 2.333333 2.833333 2.500000 2.666667 2.666667

现在假设我用 RCpp 编写了相同的函数,如下所示:

double do_mean(NumericVector x) {
  return mean(na_omit(x));
}

//[[Rcpp::export]]
NumericVector colMeansCppMt(NumericMatrix& x) {
  int nCols=x.ncol();
  NumericVector out=no_init(nCols);
  for (int i=0;i<nCols;i++) {
    NumericMatrix::Column tmp=x(_,i);
    out[i]=do_mean(tmp);
  }
  return out;
}

输出为colMeansCppMt对彼此而言testM and testM2返回数值向量,但该向量为testM不包含colnames因为它还没有被设置。

现在,假设我改变colMeansCppMt函数包含这样的属性:

//[[Rcpp::export]]
NumericVector colMeansCppMt(NumericMatrix& x) {
  int nCols=x.ncol();
  NumericVector out=no_init(nCols);
  for (int i=0;i<nCols;i++) {
    NumericMatrix::Column tmp=x(_,i);
    out[i]=do_mean(tmp);
  }
  out.attr("names")=x.attr("names");
  return out;
}

输出为testM仍然是一个不包含列名称的向量。

我也尝试过out.attr("names")=x.attr("colnames") and out.attr("colnames")=x.attr("colnames").

A)。我如何在 RCpp 中查看colnames矩阵的(例如x在上面的示例函数中)是否已设置?

b).如何返回 R 中名称为 Rcpp 的数字向量?


设置风景:

  1. 常规 R 向量有一个(可选)names属性,
  2. data.frames 有一个row.names行的属性,以及names列的属性,以及
  3. matrixs 有一个(可选)dimnames属性;这个属性是一个list包含 2 个字符向量(行然后列)。

所以你想要的是列名x附加到 'names' 属性out,所以类似:

out.attr("names") = VECTOR_ELT(x.attr("dimnames"), 1);

会工作。

(我不记得是否Rcpp有一个很好的 API,用于获取/设置数组中的维度名称...)

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

在 Rcpp 中 - 如何返回带有名称的向量 的相关文章

  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • 我可以使用哪个 R 函数来查找两条线的交点?

    我刚刚研究了 stackoverflow 上所有的 在 R 中寻找交集 问题 它们要么是关于曲线 要么是关于分布像这个 https stackoverflow com questions 20519431 finding point of
  • `dplyr::_join` 函数的命名向量“by”参数[重复]

    这个问题在这里已经有答案了 我正在写一个函数dplyr join两个数据框by不同的列 第一个数据帧的列名称动态指定为函数参数 我相信我需要使用rlang准引用 元编程 但未能找到可行的解决方案 我很感激任何建议 library dplyr
  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • 在网格中制作一个矩形图例,并标记行和列

    我有一个 ggplot 我将因子映射到填充和 alpha 如下所示 set seed 47 the data lt data frame value rpois 6 lambda 20 cat1 rep c A B each 3 cat2
  • 使用选定因子水平的值向 ggplot-barchart 添加水平线

    在这个情节中 df lt data frame factor as factor c rep A 3 rep B 3 Treatment c rep c A B C 2 values runif 6 0 1 ggplot df aes Tr
  • R:按组,测试一个变量的每个值是否存在于另一个变量中

    我有一个数据框架 结构如下 a lt c 1 1 1 2 2 2 3 3 3 3 4 4 b lt c 1 2 3 1 2 3 1 2 3 4 1 2 c lt c NA NA 2 NA 1 1 NA NA 1 1 NA NA df lt
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 使用点阵个性化 R 上显示的 X 轴值

    我收集了大量包含日期 客户端及其 NFS 使用情况的数据 我正在使用lattice R包进行绘图 正如对超级用户的建议 https superuser com questions 523195 plot custom log data on
  • R 中 SVG 图形的最佳设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想从 R 导出 SVG 图形 似乎有两种选择 RSvgDevice 和 Cairo 有人可以对这些包发表评论吗 是默认的还是明显比另一个
  • 如何将旋转的 NetCDF 转换回正常的纬度/经度网格?

    我有一个带有旋转坐标的 NetCDF 文件 我需要将其转换为正常的纬度 经度坐标 经度为 180到180 纬度为 90到90 library ncdf4 nc open dat nf 对于尺寸 它显示 1 5 variables exclu
  • 计算 R 行中的非零条目数

    我有以下类型的数据 mode1 mode2 mode3 1 8 1 0 2 0 0 0 3 6 5 4 4 1 2 3 5 1 1 1 数据使用dput structure list mode1 c 8L 0L 6L 1L 1L mode2
  • HTTR GET 新错误:SSL 证书问题:证书已过期

    我已经运行这段代码几个月了 没有出现任何问题 今天我突然开始在我的两台 AWS 服务器上收到以下错误消息 错误 curl curl fetch memory url handle handle SSL证书问题 证书已过期 当尝试运行以下代码
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • C# 代码生成

    我正在考虑为一个项目创建一个小型类生成器 我一直在阅读有关 CodeDOM 的内容 因此创建类的语义似乎不是问题 但我不确定如何最好地将生成集成到开发和部署过程中 我应该如何触发类的创建 我已经读到它应该是构建过程的一部分 我应该怎么做 应
  • 从 JavaScript 中的执行上下文检索值

    var value 10 var outer funct function var value 20 var inner funct function var value 30 console log value logs 30 conso
  • AWS CloudWatch 洞察图 — 读取量 IO 的增长时间比实际读取时间长得多

    介绍 我们试图 衡量 一个未在其他情况下使用的 Aurora 数据库上特定用例的使用成本 2020 年 10 月 8 日 19 18 至 19 19 之间 UTC 我们向其发出了一些有代表性的询问 这是 1 分钟 的行动 然后 第二天 我们
  • 从 JS 中的 Azure Functions 连接到 Azure SQL DB

    我正在尝试从用 nodeJS 编写的 azure 函数连接到我的 Azure SQL DB 我已经在应用程序设置中设置了连接字符串 但它仍然不起作用 我使用 ODBC 密钥进行连接设置 有人尝试过这个吗 下面是我的函数的示例代码 var C
  • ruby 的 C1 或 C2 覆盖工具 [重复]

    这个问题在这里已经有答案了 有没有什么工具可以C1 或 C2 代码覆盖率 http dev logger blogspot com 2008 06 c0 c1 and c2 coverage html对于红宝石 1 9 SimpleCov
  • 超过对象末尾的指针意味着什么?

    在 C Primer 第 2 章 变量和基本类型 中 它说 指向一个对象的指针和越过不同对象末尾的指针有可能保存相同的地址 我不是母语人士 我认为这就是为什么我对 超过对象末尾的指针 这句话有点困惑 请问有人可以告诉我这是什么意思吗 假设你
  • 网格线不显示

    我设置了以下代码来读取 graphml 文件 执行计算 特征值 然后绘制结果 这是我到目前为止的代码 import numpy as np import networkx as nx import matplotlib pyplot as
  • 更改根模块之间的共享数据[重复]

    这个问题在这里已经有答案了 我有两个模块 1st NgModule imports BrowserModule FormsModule SharedModule forRoot declarations FirstComponent boo
  • 如何将 CSS 应用到 ASP:FileUpload 控件

    我究竟如何设计这个控件的样式 我已经尝试过这个 但它不起作用
  • Javascript继承:父级的数组变量保留值

    我在这里尝试在 JavaScript 中使用继承 但发现数组值存在问题Parent由 a 继承的类Child班级 下面的代码是正常的继承 var Parent function this list var Child function Ch
  • 运行 Python 脚本 CRON 时遇到问题:导入错误:没有名为 Tweepy 的模块

    背景 我正在关注Crontab 没有运行我的 python 脚本 https stackoverflow com questions 12534135 crontab not running my python script尝试使用 CRO
  • 从脚本/命令行执行浏览器页面/javascript

    希望这不是一个愚蠢的问题 我最近对一些我很好奇的事情有了一个想法 我是 Node js 我认为与此无关 和 V8 引擎的粉丝 但我想知道是否可以在内部运行浏览器 让它执行 JS 我的意思是创建一个程序 可能使用 V8 引擎 它可以打开一个页
  • “做某事或 DIE()”在 PHP 中如何工作?

    我正在编写一个 php 应用程序来访问 MySQL 数据库 在教程中 它说了以下形式的内容 mysql connect host user pass or die could not connect PHP 如何知道函数失败 从而运行 di
  • 如何在 python 中创建自己的数据类型以便覆盖算术运算符?

    我目前正在使用 Python Numpy 处理地理 GPS 数据 喜欢它 并且我面临着计算由坐标对定义的地理点之间的距离的重复任务pn lon lat 我有一个这样使用的函数 dist geodistance p1 p2 它类似于线性代数中
  • 使用 PHP PDO 远程连接到 MySQL 数据库

    在这里我尝试使用连接到 MySQL 数据库PHP PDO使用 IP 地址从远程服务器 当将 ip 地址代替主机时 出现以下错误 Warning PDO construct php network getaddresses getaddrin
  • tkinter 包几何形状:1 列,一行有 4 个单选按钮?

    我想在一列中有四个水平按钮 整个 UI 是一列 我不知道如何使用包几何管理器来做到这一点 我已经采用垂直按钮 但必须有办法做到这一点 我是 Python 新手 所以我的代码非常简单 v IntVar Radiobutton root tex
  • 覆盖 WildFly 中的日志记录

    我使用 tomcat 并简单地覆盖默认日志系统 如何在我的 Spring 应用程序中启用 Wildfly 上的 logback 日志记录 我的 Logback xml 在 tomcat 上工作
  • java中如何改变ArrayList元素的值

    请帮助我使用下面的代码 即使更改值后我也会得到相同的输出 import java util class Test public static void main String args ArrayList
  • 数据合约如何运作? - 反序列化Json

    我举了一个例子这个问题 https stackoverflow com questions 4115037 problem with deserializing json on datamember type 4119681 4119681
  • 在 Rcpp 中 - 如何返回带有名称的向量

    假设我有以下矩阵 testM lt as matrix read table textConnection 1 5 4 1 3 2 2 1 5 4 1 3 2 2 1 5 4 1 3 2 2 1 5 4 1 3 2 2 1 5 4 1 3