在 data.table 的 j 参数中使用“list”

2023-11-26

我正在学习 data.table 属性一篇博文。我试图理解“汇总表(短而窄)”下的部分,首先将 data.frame(mtcars) 强制转换为 data.table:

> data <- as.data.table(mtcars)

> data <- data[,.(gear,cyl)]
> head(data)
    gear cyl
 1:    4   6
 2:    4   6
 3:    4   4
 4:    3   6
 5:    3   8
 6:    3   6

到目前为止一切都很好。

现在我已经尝试过这个data[, gearsL := list(list(unique(gear))), by=cyl]

> head(data)
   gear cyl gearsL
1:    4   6  4,3,5
2:    4   6  4,3,5
3:    4   4  4,3,5
4:    3   6  4,3,5
5:    3   8    3,5
6:    3   6  4,3,5

我能够理解独特(齿轮)但无法理解什么列表(列表(唯一(齿轮))是在做。


与任何 data.frame 一样,data.table 是指向列向量的指针列表。

创建新列时,我们写j of DT[i,j,by]以便其计算结果为列列表:

DT[, (newcol_names) := list(newcol_A, newcol_B)]

这就是最外面的list()在OP的例子中,对于单个list column.

data[,gearsL := list(list(unique(gear))), by=cyl]

这可以而且应该使用别名来编写.(),为了清楚起见:

data[, gearsL := .(list(unique(gear))), by=cyl]

这就是您需要知道的全部内容,但我在下面进行了一些详细说明。


Details.创建新列时,我们常常可以跳过list()/.():

DT = data.table(id=1:3)
DT[, E := c(4,5,6)]
DT[, R := 3]
# this works as if we had typed
# R := c(3,3,3)

注意E枚举每个值,同时R在所有行上回收单个值。下一个例子:

DT[, Elist := list(hist(rpois(1,1)), hist(rpois(2,2)), hist(rpois(3,3)))]

正如我们所做的那样E,我们枚举的值Elist这里。这里仍然使用快捷方式;list()在这里只是因为该列本身就是一个list,经证实

sapply(DT, class)
#        id         E         R     Elist 
# "integer" "numeric" "numeric"    "list" 

便捷的跳过快捷方式list()/.()在一种特殊情况下会失败:当我们创建一个list回收其值的列:

DT[, Rlist := list(c("a","b"))]
# based on the pattern for column R, this should work as if we typed 
# Rlist := list(c("a","b"), c("a","b"), c("a","b"))

它不起作用,因为解析器将其视为C2 := .( c("a", "b") )并认为我们只是忽略了对每一行使用一个值进行完整枚举,例如Elist做。要获得所需的结果,请跳过快捷方式并将向量包装在list()/.():

DT[, Rlist := .(list(c("a","b")))]

#    id E R       Elist Rlist
# 1:  1 4 3 <histogram>   a,b
# 2:  2 5 3 <histogram>   a,b
# 3:  3 6 3 <histogram>   a,b

这是OP示例中的情况,其中外部list()/.()是必要的。

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

在 data.table 的 j 参数中使用“list” 的相关文章

  • 在 R 中管理元数据的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 在分析数据时 有关变量的元数据极其重要 您如何在 R 中管理这些信息 例如 有没有办法指定将打印的标签而不是变量名称 R中有哪些工具可以实现这一点 我想到的快速建议是 将数据与对象一起存储的属性 正如 Frank
  • 在 ggduo 散点图矩阵中显示相关指数

    我有这样的事情 library GGally df data frame runif 100 rnorm 100 rgamma 100 1 2 rt 100 1 rf 100 1 2 ggduo df columnsX 1 2 column
  • 从组成员数据创建加权图

    假设我有一个 R 数据集 指示组内的个体 这是一个例子 grp lt c 1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 ind lt c A C D B C D E A D E B F E A F data frame grp
  • 更改 ggplot 对象的数据集

    我正在绘制数据的子集ggplot2我想知道我是否会以某种方式使用已包含在ggplot原始数据子集中的对象 举个例子 这是第一个图 代码块 1 require ggplot2 p lt ggplot mtcars aes mpg wt col
  • 测试 PCA 图上簇的显着性

    是否可以在 PCA 图上测试 2 个已知组之间聚类的显着性 测试它们的接近程度或分布量 方差 以及簇之间的重叠量等 这是一种定性方法 使用ggplot 在簇周围绘制 95 置信椭圆 注意stat ellipse 使用二元 t 分布 libr
  • 使用 ff 包导入文本文件

    我有一个包含 450 万行和 90 列的文本文件要导入到 R 中 read table我得到了cannot allocate vector of size 错误消息 因此我尝试使用 ff 包导入 然后再对数据进行子集化以提取我感兴趣的观察结
  • 带有 jsessionid 的 R 网络抓取工具

    我正在 R 中测试一些网页抓取脚本 我已经阅读了很多教程 文档并尝试了不同的方法 但到目前为止还没有成功 我试图抓取的网址是this one http www dataescolabrasil inep gov br dataEscolaB
  • 在 expr *之前*执行的任务处理程序

    是否有运行代码的回调before提示输入expr被评价 通过 SO CRAN 和一些谷歌搜索发现了我怀疑的答案 当前的 REPL 实现不可能 如果我错过了类似详细的重复讨论 我深表歉意 我对addTaskCallback 及其函数族 正在阅
  • 如何在 ggplot2 图中有两个源标题? [复制]

    这个问题在这里已经有答案了 我正在尝试在 ggplot2 图中添加第二个标题 与这位经济学家制作此图的方式类似 这是我制作的一个基本图 我知道如何在右下角添加一个标题 但如何在左下角添加另一个标题 ggplot mtcars aes mpg
  • 如何制作 POSIXct 的空向量

    我想制作一个空向量POSIXct这样我就可以放一个POSIXct in it vec lt vector POSIXct 10 vec vec 1 lt 2014 10 27 18 11 36 PDT vec 那是行不通的 有任何想法吗 由
  • 连接极线ggplot图中的间隙

    当 ggplot 使用极坐标绘制线图时 它会在最高和最低 x 值之间留下间隙 Dec and Jan如下 而不是缠绕成螺旋状 我怎样才能继续这条线并缩小差距 特别是 我想使用月份作为 x 轴 但在一条循环线上绘制多年的数据 Reprex l
  • 如何查找页面上R图形的字节大小?

    我想监控 R 在各个页面上生成的图形的基本质量 例如每个页面的字节大小 我现在只能对平均页面进行质量保证 请参阅下面的章节 我认为这项任务必须有一些比一般措施更内置的东西 生成 4 页的代码Rplots pdf我想知道此处输出中每个页面的字
  • ggplot2 stat_function,具有针对facet_grid内不同数据子集的计算参数

    我有一个关于如何通过的后续问题fitdistr计算参数为stat function see here https stackoverflow com questions 24949065 multiple stat function on
  • 如何使用 ggvis 标记绘图刻度线

    我正在尝试更改中的刻度标签ggvis阴谋 我的数据点是x c 1 2 3 and y c 1 2 3 但是 以下代码会产生完全没有意义的刻度标签 library dplyr library ggvis data frame x c 1 2
  • 为什么我不能执行 foreach (var Item in DataTable.Rows)?

    我无法执行以下操作是否有原因 foreach var Item in DataTable Rows 而不是必须做 foreach DataRow Item in DataTable Rows 我本以为这是可能的 就像其他数据类型一样 例如
  • R - 分割数据帧而不删除 NA 值

    如果我有一个 df letter body part a head b head c NA d NA e left foot 我想将它分成 2 个 dfs 一个只有 body part head 另一个则包含其他所有内容 IE 列表 我可以
  • r中逻辑回归的分类变量

    我如何在 R 中的二元逻辑回归中实现分类变量 我想测试专业领域 学生 工人 教师 个体户 对购买某种产品的概率的影响 在我的示例中 y 是一个二进制变量 1 表示购买产品 0 表示不购买 x1 是性别 0男 1女 x2 年龄 20 到 80
  • Sparklyr - 在 Apache Spark Join 中包含空值

    问题在 Apache Spark Join 中包含空值 https stackoverflow com questions 41728762 including null values in an apache spark join有 Sc
  • R:连接到 Teradata 时 JDBC() 找不到 Java 驱动程序路径

    我正在尝试通过 RStudio 连接到 Teradata 但由于某种原因 JDBC 函数在识别 Java 驱动程序所在的路径时出现问题 请参阅下面的代码 library RODBC library RJDBC library rJava b
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强

随机推荐

  • 从字节数组创建私钥

    有没有办法从字节数组生成私钥 我使用 getEncoded 方法获取了这个字节数组 但现在我必须将其转换回 PrivateKey 谢谢 武克 我也在寻找这个答案 终于找到了 keyBytes 是最初使用 getEncoded 创建的字节数组
  • 在 Java FX 工作线程中不断更新 UI

    I have Label label在我的 FXML 应用程序中 我希望这个标签每秒改变一次 目前我使用这个 Task task new Task
  • 根据引用者限制对AWS S3存储桶的访问

    我试图限制对 S3 存储桶的访问 并仅允许基于引用来源的列表中的某些域 存储桶策略基本上是 Version 2012 10 17 Id http referer domain lock Statement Sid Allow get req
  • Sphinx LaTeX 标记限制

    我正在尝试在 Sphinx 版本 1 1 2 1 的多行数学模式中做三件非常基本的事情 即使在数学模式下 也将下划线写入变量名称的一部分 Use the big biggl等 构成大括号和圆括号的分隔符 并包括常规文本作为方程的一部分 请注
  • 从远程通知打开 ViewController

    当我的应用程序捕获远程通知时 我想打开 ViewController 当我收到通知时 我想打开一个 SimplePostViewController 所以这是我的 appDelegate var window UIWindow var na
  • spring data r2dbc可以生成schema吗?

    我正在使用 R2DBC 和 H2 创建一个快速项目 以熟悉这种新的反应性东西 制作了一个扩展 ReactiveCrudRepository 的存储库 只要我使用 DatabaseClient 发出与我的实体首先匹配的 CREATE TABL
  • 跨多个区域的 AppEngine 负载均衡

    据我所知 AppEngine 项目仅定义为一个区域 Google 会自动为您处理负载平衡 但是 如果我在世界各地的不同地区有应用程序 在不同的项目中 因为这似乎是一个要求 那么我如何使用 Google Cloud 中的 HTTPS 负载均衡
  • 保存 matplotlib python 函数生成的图

    我创建了一个函数 它从数据集中获取一系列值并输出一个图 例如 my plot location dataset min temperature max temperature 将返回函数中指定温度范围内的降水图 假设我想保存加利福尼亚州 6
  • Jquery UI 选项卡:关闭选项卡时如何隐藏选项卡及其相应的 div

    我使用了 Jquery UI 选项卡 并为选项卡提供了关闭选项 默认情况下 我创建三个选项卡及其相应的三个 div 现在 当我关闭选项卡时 选项卡及其 div 将被删除 我需要隐藏选项卡和 div 当我单击 添加选项卡 时 我应该只显示隐藏
  • 创建 shell 脚本以在 Linux 上运行 Java 程序

    我创建了一个同步两个目录内容的java程序 该程序将两个目录的位置作为参数来同步它们 同步信息存储在每个目录内的 JSON 格式文件中 我有一个参考库json simple 1 1 1 jar 我在 Windows 上从 Eclipse 运
  • 带括号和不带括号的方法调用的优先级是什么?

    以前的答案 The answer到类似的question是错的 Ruby 中都没有提到方法调用文档也不在社区维基 不带括号的方法调用 比 高or or似乎比不带括号的方法调用具有较低的优先级 puts false or true 相当于 p
  • 如何使用 async/await 返回 Ajax 结果? [复制]

    这个问题在这里已经有答案了 试图熟悉async await 我在 Chrome 中尝试了以下代码 async function f return await get var result f but result不保存结果 字符串 相反 它
  • 在 R 包中包含命令行脚本

    我有兴趣为我正在编写的名为 Slidify 的 R 包提供命令行界面 它用Rscript我认为这将使其成为跨平台的 脚本存储在子目录中inst slidify 为了从任何目录使用该脚本 我将其路径添加到我的 bash profile就像我在
  • 与特定用户以只读方式共享 GitHub 上的私有 git 存储库

    我终于想学习如何 git 所以我正在 GitHub 上写一篇关于版本控制的相当广泛的论文 我有一个freeGitHub pro 帐户 感谢我的大学 所以我可以添加私人存储库 我需要添加我的主管 以便他可以访问这些文档 但我希望他的 GitH
  • 方法名称是否会编译到 EXE 中?

    做类 方法和变量姓名包含在邮件中将 Windows 应用程序项目编译成 EXE 后 For 混淆 名称越少 逆向工程就越困难 And for 表现 名称更短 访问速度更快 e g 因此 如果方法是通过名称调用的 保留名字short 更好的命
  • 是否可以在控制器内获取当前的 Unity 容器

    我像这样注册了统一容器 var container new UnityContainer container RegisterType
  • 在 Node.js 中管理会话? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在 Node js 中管理会话变量的最佳方法是什么 有图书馆吗 您可以使用以下方法轻松做到这一点 连接 http senchalabs github com connect Connect
  • 如何为库设置 TypeScript 编译器,以便 Webpack 在依赖项目中删除未使用的模块?

    主题库初步说明 很抱歉占用您的时间让您阅读本文 我写它是为了回答诸如 你在做什么 之类的问题 和 你为什么要这样做 The library由大量辅助函数和类组成 在这方面它与 lodash 类似 检查lodash的结构 但与 lodash
  • Selenium / lxml:获取 xpath

    有没有get xpath方法或在 selenium 或 lxml html 中完成类似操作的方法 我有一种感觉 我在某个地方见过 但在文档中找不到类似的东西 伪代码来说明 browser find element by name searc
  • 在 data.table 的 j 参数中使用“list”

    我正在学习 data table 属性一篇博文 我试图理解 汇总表 短而窄 下的部分 首先将 data frame mtcars 强制转换为 data table gt data lt as data table mtcars gt dat