如何在 R 中将数组转换为 data.table 并返回?

2023-12-02

这是最直接的方法吗将数组转换为 data.table?

require(data.table)
require(ggplot2)

# this returns a data.table with both array's dimensions and values
aaa <- array(rnorm(3*4*2), dim = c(3,4,2))
DT1 <- as.data.table(as.data.frame.table(aaa))

# the following does not work properly, because it only returns the array values
DT2 <- as.data.table(aaa)


# plot values aggregated by 3rd array dim
ggplot(DT1, aes(Var1, Freq, fill = Var3)) + geom_boxplot()
# sum values by 2nd array dim
DT1[ , sum(Freq), Var2]

编辑1: 抱歉,“正确”的意思是我得到一个仅包含一列的数据框,因此我不知道值源自原始数组中的哪个位置。 这个想法是将数组转换为平面表,这样更容易,例如使用维度作为因子绘制变量,或按因子聚合值。 DT2 还能实现这一点吗?

编辑2: 另一件有用的事情是将 data.table 转换回原始数组。您是否知道一个通​​过定义将哪些列用作维度来将 data.table 强制转换为数组的函数?

aaa <- array(rnorm(3*4*2), dim = c(3,4,2), list(Var1 = LETTERS[1:3], Var2 = LETTERS[1:4], Var3 = LETTERS[1:2] ))

DT1 <- setDT(melt(aaa))

# convert DT1 back to aaa
array(data = DT1[ ,value],
      dim = c(length(unique(DT1[ ,Var1])),
              length(unique(DT1[ ,Var2])),
              length(unique(DT1[ ,Var3]))),
      dimnames = list(Var1 = unique(DT1[ ,Var1]),
                      Var2 = unique(DT1[ ,Var2]),
                      Var3 = unique(DT1[ ,Var3])))

thanks!


仅适用于版本 1.11.4 和 1.11.2,但不适用于某些早期版本

两种方法本质上返回相同的 data.table 但A=1, B=2, C=3在第二种方法中,行以不同的方式排序。所以第二种方法是可行的方法。

DT2 <- as.data.table(aaa)
head(DT2)
#   V1 V2 V3       value
#1:  1  1  1  0.32337516
#2:  1  1  2  1.59189589
#3:  1  2  1 -1.48751756
#4:  1  2  2 -0.86749305
#5:  1  3  1  0.01017255
#6:  1  3  2  2.66571093

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

如何在 R 中将数组转换为 data.table 并返回? 的相关文章

  • Angular-Datatables + Angular-xeditable:取消可编辑行

    当组合 Angular DataTables 和 Angular XEditable 时 添加新行时会取消可编辑行 这是jsfiddle https jsfiddle net faj61h5d 10 示例操作如下 1 这是初始状态 2 将第
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • R中使用余弦距离的层次聚类

    我想通过使用余弦相似度与 R 编程语言对文档语料库进行层次聚类 但出现以下错误 if is na n n gt 65536L stop 大小不能为 NA 或 超过 65536 需要 TRUE FALSE 时缺少值 我应该怎么办 为了重现它
  • 使用神经网络包进行多项分类

    这个问题应该很简单 但文档没有帮助 我正在使用 R 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • RMySQL fetch - 找不到继承的方法

    使用 RMySQL 我想将数据从数据库加载到 R 中的数据帧中 为此 我使用以下代码 R连接数据库 con lt dbConnect MySQL user root password password dbname prediction h
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • Powershell 数组到带引号的逗号分隔字符串

    我有一个数组 需要输出到逗号分隔的字符串 但我还需要引号 这是我所拥有的 myArray file1 csv file2 csv a myArray join a 输出为 a最终 file1 csv file2 csv 我想要的输出是 fi
  • R 中具有 p 值的相关矩阵

    假设我想要传导相关矩阵 library dplyr data iris iris gt select if is numeric gt cor y iris Petal Width method spearman gt round 2 现在
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • 连接树状图和热图

    我有一个heatmap 一组样本的基因表达 set seed 10 mat lt matrix rnorm 24 10 mean 1 sd 2 nrow 24 ncol 10 dimnames list paste g 1 24 sep p
  • R 获取子字符串和正则表达式?

    我有一组文件名字符串 我想提取 符号之后但文件扩展名之前的所有字符 例如 文件名之一是 HelloWorld you txt 我想返回字符串you 这是我的代码 hashPos grep name fixed TRUE dotPos len
  • 在 Postgres 中的数组字段上应用聚合函数?

    是否可以对整数 字段 或其他数字数组 中的所有值应用聚合 如 avg stddev CREATE TABLE widget measurement integer insert into widget measurement values
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • ggplot2 + 使用比例 X 的日期结构

    我真的需要帮助 因为我已经迷路了 我正在尝试创建一个折线图 显示几个团队一年来的表现 我将一年分为几个季度 2012 年 1 月 1 日 2012 年 4 月 1 日 2012 年 8 月 1 日 12 1 12 并将 csv 数据帧加载到
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 如何在闪亮的observeEvent中监听多个事件表达式

    我想要两个不同的事件触发观察者 有人建议here https stackoverflow com questions 34731975 how to listen for more than one event expression wit
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co
  • 在 R 中读入原始二进制数据并将其转换为整数

    我有一个二进制文件 其中包含编码为不同长度 主要是 2 4 字节 的有符号或无符号整数的数值 为了处理这些数据 我将文件的所需部分读取为raw向量与readBin 然后尝试将其转换为十进制 问题是 R的内置函数有限制 我不太明白 比如没有l

随机推荐

  • 如何在php(Web应用程序)中传递值并运行C程序

    我有大c程序 我想在 php 中执行该函数并获取值 例如 C程序 int add int int void main int i 1 printf i starts out life as d i i add 5 10 printf And
  • PySide多重继承:继承一个QWidget和一个Mixin

    我正在尝试创建一组继承 QWidget QMainWindow 和 QDialog 的 PySide 类 另外 我想继承另一个类来重写一些函数 并设置小部件的布局 Example Mixin class Mixin object def i
  • 如何从另一个应用程序打开 KeyNote 应用程序

    我遇到一种情况 我必须在我的应用程序中使用一些 Keynote 文件 为此我必须使用 Keynote 应用程序 现在我的问题是有没有任何方法可以从我的应用程序打开主题演讲应用程序 可能来自 URL 方案 如果是 那么如何将我的文件传递给它
  • 如何使内部/辅助函数可测试?

    假设我有一些功能Foo使用两个内部辅助函数bar and baz 有没有办法组织代码以便bar and baz保持 看不见 但同时可以进行单元测试 最好 单元测试bar and baz将与主功能的单元测试位于同一套件中Foo 有几种选择可以
  • 在文本转语音运行时突出显示文本

    我正在为 ipad 开发一个应用程序 我想在其中添加如下功能 当用户点击播放按钮时 文本转语音将开始播放该文本 该单词将在阅读时突出显示 我知道 iOS 的内置功能 但我想以编程方式完成它 我查了很多资料 结果如下 Link 1 Link
  • 如何在 angularjs 1.3 中将表单中的特定字段设置为脏

    我想将特定形式的字段设置为脏 因为我手动更改该值 我已经进入了 SO 线程Angular js 以编程方式将表单字段设置为脏 但没有运气 这是我的问题的示例副本 Plunk
  • 在文件夹中创建文本文件

    我想在我在这里创建的文件夹中创建一个文本文件 File dir new File crawl html dir mkdir String hash MD5Util md5Hex url1 toString System out printl
  • 如何忽略 PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException?

    当我尝试向 http 服务器发送请求时 出现以下异常 这是我使用的代码 URL url new URL https www abc com HttpURLConnection conn HttpURLConnection url openC
  • 创建流畅的 API

    如何创建一个本质上流畅的 API 这主要是使用扩展方法吗 本文比我以前能更好地解释它 编辑 无法将其压缩在评论中 接口有两个方面 实现和使用 在创建方面还有更多的工作要做 我同意这一点 但是主要的好处可以在事物的使用方面找到 事实上 对我来
  • 如何在 Jenkins Workflow Plugin 中获取 SVN 修订号?

    我正在使用 Jenkins 1 596 工作流程 1 3 和 Svn 插件 2 5 我正在尝试在我的工作流程脚本中获取 svn 修订号 我的工作流程脚本部分是 node checkout scm class SubversionSCM lo
  • jquery tablesorter CSS 箭头图标

    这实际上更像是一个 CSS 问题 而不是 jQuery 问题 我正在使用 tablesorter jQuery 插件对表进行动态排序 Here s what it looks like currently 这是我正在使用的 CSS 代码 t
  • 生成没有指针的大写字母

    我正在尝试编写一个大写函数 它将字符串中的所有小写字符转换为其等效的大写字符 但是 我的代码中出现了 Bus 10 错误 我知道在 C 中不能修改字符串文字 所以 我不确定这是否是正确的方法 我的代码如下 include
  • 在 Java 中将字符串 XML 片段转换为文档节点

    在 Java 中 如何转换表示 XML 片段的字符串以插入到 XML 文档中 e g String newNode
  • 如何从wpf中的文件夹路径获取图像

    我试图了解如何从我的项目中获取文件 我使用的是 Visual Studio 2010 并且我的 wpf 项目中有一个名为 Images 的文件夹 我如何从该文件夹中获取图像 我正在尝试 return Images name jpg 它本身所
  • PHP CSS 解析器 - 选择器声明到字符串

    我希望能够读取 CSS 文件 并能够将给定选择器的所有声明提取到字符串中 例如 给定以下样式表 h1 font size 15px font weight bold font style italic font family Verdana
  • Python 不检测 .pyc 文件

    我正在使用 Python 3 2 用于构建和执行 这是我的问题 我打算通过以下设置发送我的 python 应用程序 有一个主要脚本 例如 Main py 即使用已编译的模块 例如Module1 pyc 准确来说 目录结构是 Main py
  • 无法启动服务意图

    我有一个服务班 我已将此类导出到 jar 并将该 jar 嵌入到我的客户端应用程序中 当需要时 我调用服务类 当我尝试这样做时 出现以下错误 Unable to start service Intent comp com sample se
  • int c = getchar()?

    我正在读这本书 C 编程语言 作者 Kernighan 和 Ritchie 第二版 在其中一个示例中 我无法理解事情是如何运作的 include
  • 如何在 pydev 中启用事后调试?

    每当我的程序引发未处理的异常时 我想让 pydev 进入交互式控制台模式 但我不知道该怎么做 正如它现在的行为一样 会报告异常并立即终止进程 经过一番搜索后我发现了这个 建议使用 pydevd set pm excepthook 但是 当我
  • 如何在 R 中将数组转换为 data.table 并返回?

    这是最直接的方法吗将数组转换为 data table require data table require ggplot2 this returns a data table with both array s dimensions and