如何使用 dcast 将一列拆分为不同的列而不聚合?

2023-12-01

我正在尝试使用 dcast 重塑我的数据。我正在处理每个样本有 10-30 个样本单元的样本。我无法汇总我的数据。

我的数据是这样的格式:

ID  total
sample_1    1
sample_1    0
sample_1    2
sample_1    1
sample_1    0
sample_1    0
sample_1    2
sample_1    1
sample_1    0
sample_1    2
sample_1    1
sample_1    4
sample_2    2
sample_2    1
sample_2    2
sample_2    0
sample_2    0
sample_2    0
sample_2    1
sample_2    2
sample_2    1
sample_2    4
sample_2    5
sample_2    2
sample_2    1
sample_3    0
sample_3    0
sample_3    1
sample_3    2
sample_3    1
sample_3    0
sample_3    2
sample_3    1
sample_3    4
sample_3    5
sample_3    1
sample_3    1
sample_3    0
sample_3    0
sample_3    1

我希望它看起来像这样:

sample_1    sample_2    sample_3
1           2           0
0           1           0
2           2           1
1           0           2
0           0           1
0           0           0
2           1           2
1           2           1
0           1           4
2           4           5
1           5           1
4           2           1
            1           0
                        0
                        1

我的样本 ID 变成了不同的列。

我尝试了多种方法,但 R 不断聚合它。


你可以这样做dcast()但你必须为每个添加行号ID.

The data.table包是除此之外的另一个包reshape2它实现了dcast(). data.table有一个方便的rowid()函数在每个组内生成唯一的行 ID。这样,我们得到:

library(data.table)
dcast(setDT(DF), rowid(ID) ~ ID, value.var = "total")
#    ID sample_1 sample_2 sample_3
# 1:  1        1        2        0
# 2:  2        0        1        0
# 3:  3        2        2        1
# 4:  4        1        0        2
# 5:  5        0        0        1
# 6:  6        0        0        0
# 7:  7        2        1        2
# 8:  8        1        2        1
# 9:  9        0        1        4
#10: 10        2        4        5
#11: 11        1        5        1
#12: 12        4        2        1
#13: 13       NA        1        0
#14: 14       NA       NA        0
#15: 15       NA       NA        1

但是,我建议继续以长格式进行任何数据处理并使用分组。这比处理单个列容易得多。例如,

# count observations by group
DF[, .N, by = ID]
#         ID  N
#1: sample_1 12
#2: sample_2 13
#3: sample_3 15

# compute mean by group
DF[, mean(total), by = ID]
#         ID       V1
#1: sample_1 1.166667
#2: sample_2 1.615385
#3: sample_3 1.266667

# get min and max by group
DF[, .(min = min(total), max = max(total)), by = ID]
#         ID min max
#1: sample_1   0   4
#2: sample_2   0   5
#3: sample_3   0   5

# the same using range()
DF[, as.list(range(total)), by = ID]
#         ID V1 V2
#1: sample_1  0  4
#2: sample_2  0  5
#3: sample_3  0  5

Data

DF <- structure(list(ID = c("sample_1", "sample_1", "sample_1", "sample_1", 
"sample_1", "sample_1", "sample_1", "sample_1", "sample_1", "sample_1", 
"sample_1", "sample_1", "sample_2", "sample_2", "sample_2", "sample_2", 
"sample_2", "sample_2", "sample_2", "sample_2", "sample_2", "sample_2", 
"sample_2", "sample_2", "sample_2", "sample_3", "sample_3", "sample_3", 
"sample_3", "sample_3", "sample_3", "sample_3", "sample_3", "sample_3", 
"sample_3", "sample_3", "sample_3", "sample_3", "sample_3", "sample_3"
), total = c(1L, 0L, 2L, 1L, 0L, 0L, 2L, 1L, 0L, 2L, 1L, 4L, 
2L, 1L, 2L, 0L, 0L, 0L, 1L, 2L, 1L, 4L, 5L, 2L, 1L, 0L, 0L, 1L, 
2L, 1L, 0L, 2L, 1L, 4L, 5L, 1L, 1L, 0L, 0L, 1L)), .Names = c("ID", 
"total"), row.names = c(NA, -40L), class = "data.frame")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 dcast 将一列拆分为不同的列而不聚合? 的相关文章

  • 数据框中按行相关

    我正在尝试计算大型数据帧的所有行之间的相关性 到目前为止已经提出了一个有效的简单 for 循环 例如 name lt c a b c d col1 lt c 43 78 43 84 37 92 31 72 col2 lt c 43 80 4
  • 如何在 Shiny 应用程序中访问/打印/跟踪当前选项卡选择?

    我正在一个闪亮的应用程序中工作 我希望能够访问用户在会话中当前所在选项卡上的信息 我有一个观察事件 用于侦听要单击的特定按钮 简而言之 我想存储 打印用户单击此按钮时所在的当前选项卡 单击此按钮后 选项卡将更改为带有 updateTabIt
  • 如何从数据框中按降序获取前n家公司

    我正在尝试从数据框中获取排名前 n 的公司 下面是我的代码 data Forbes2000 package HSAUR sort Forbes2000 profits decreasing TRUE 现在我想从这个排序向量中获取前 50 个
  • 如何修改反应链以便最后修改的对象控制其他链接的对象?

    新注释 1 最终解决的代码发布在最底部 反映了 ismirsehregal 于 2021 年 12 月 3 日的解决方案 以及一些标记为 ADDED 和 MODIFIED 的小调整 ADD 是为了解决我在矩阵 2 添加值后从矩阵 1 中删除
  • 使用 xtable 对乳胶输出的表进行排序

    我正在尝试生成一个排序表并导出到乳胶中 然而 xtable 似乎无法处理排序表 建议 a lt sample letters 500 replace T b lt table a c lt sort table a decreasing T
  • 了解日期并使用 R 中的 ggplot2 绘制直方图

    主要问题 当尝试使用 ggplot2 制作直方图时 我无法理解为什么日期 标签和中断的处理无法像我在 R 中预期的那样工作 我在找 我的约会频率的直方图 刻度线位于匹配条下方的中心 日期标签在 Y b format 适当的限制 最小化网格空
  • ggplot2以限制为中心的多边形世界地图给出了有趣的边缘

    使用下面的代码我生成了一张以华盛顿特区为中心的地图 解决方案基于科斯克的解决方案在这里 https stackoverflow com questions 10620862 use different center than the pri
  • pandoc 文档转换失败,错误 67

    我使用的是 R 3 3 2 和 Rstudio 版本 1 0 44 这是我的 RMarkdown 文件的格式 title Sentiment Analysis output rmdformats material highlight kat
  • 在 mutate pipeline 中按组获取唯一 ID [重复]

    这个问题在这里已经有答案了 自从新的 dplyr v1 0 0 更新发布以来 我注意到该功能group indices 有 已弃用 我在工作中经常使用这个功能 并且我喜欢在mutate 例如使用dplyr v0 8 3我能够非常轻松地做这样
  • 为什么我在 R 向量的类别中看到“整数”而不是“向量”

    为什么从数据框中切片的列的数据类型显示为 整数 而不是 向量 df lt data frame x 1 3 y c a b c x y 1 1 a 2 2 b 3 3 c c1 lt df 1 1 1 2 3 class c1 1 inte
  • 使用 writeLines 将变量写入文件

    我发现此链接对于理解如何将行写入文件非常有帮助 将文本行写入 R 中的文件 https stackoverflow com questions 2470248 write lines of text to a file in r 不幸的是
  • 使用 R 进行语言相关排序

    1 如何正确排序 任务是根据英文字母对美国州名缩写进行排序 但我注意到 R 根据某种操作系统语言或区域设置对列表进行排序 例如 在我的语言 立陶宛语 中 甚至拉丁语 非立陶宛语 字母的顺序也与英语字母表中的顺序不同 仅比较两个字母表中的非立
  • 可以使用部分名称访问列表成员吗?这是一个功能吗?

    考虑这个 R 代码 gt l list key 1 gt l k 1 1 gt l ke 1 1 gt l k NULL gt names l 1 key 这是否意味着您可以使用以下方式访问列表成员 及其部分名称 当我在一次令人沮丧的错误搜
  • 在r中水平旋转直方图

    谁能帮我如何在 r 中将直方图旋转 90 度 我知道箱线图中有一个选项 horiz T 但我不知道直方图是否有类似的选项 我认为你必须使用 hist 和 barplot 来完成它 如下所示 直接来自文档 你可以在这里检查它 layout x
  • 将值排列在特定组内

    我试图在嵌套数据帧的精确组内按降序排列值 我的输入数据如下所示 我有两个分组变量 group1 and group2 和三个值 即id value2 value3 library tidyverse set seed 1234 df lt
  • R 语言 NaN + NA 行为

    我有一个关于 R 中算术行为的问题 看下面这段代码 gt NaN NA 1 NaN gt gt gt NaN as integer NA gt NA 所以 我很困惑这两个添加给出了不同的结果 有谁知道这是否是真正想要的行为还是只是某种错误
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • r - ggplot2 - 突出显示选定的点和奇怪的行为

    我想突出显示选定的点并遇到一些奇怪的行为 首先是一些虚拟数据 a lt 1 50 b lt rnorm 50 mydata lt data frame a a b b ggplot mydata aes x a y b geom point
  • 在模块中使用shiny的renderUI

    这是我在 stackoverflow 上的第一个问题 我在闪亮 1 0 5 中遇到模块和 renderUI 的问题 当我在中使用 renderUI 时 Main Part ui lt bootstrapPage uiOutput Dynam
  • R 中的整数或双精度列表

    我有一个大约 1000 个整数的列表 我需要能够进行一些数学计算 但它们被困在列表或字符形式中 我怎样才能切换它们以便它们可用 样本数据 gt y 1 1 7 3 1 6 7 1 7 6 5 3 1 3 3 0 6 2 4 9 19 1 9

随机推荐

  • 错误:无法读取 null 的属性“close”

    你好 亲爱的社区 我想知道为什么当我尝试使用 mongodb 和 nodejs 时会收到此错误 const MongoClient require mongodb MongoClient MongoClient connect mongod
  • usaco:十三号星期五我的逻辑有什么问题吗?

    该问题要求计算一周中每一天出现的 13 号的数量 这是我的代码 class CopyOffriday public static void main String args throws IOException BufferedReader
  • Spark 在运行 LinearRegressionwithSGD 时未利用所有核心

    我正在本地计算机 16G 8 个 cpu 核心 上运行 Spark 我试图在大小为 300MB 的数据集上训练线性回归模型 我检查了CPU统计信息以及正在运行的程序 它只执行一个线程 文档称他们已经实现了 SGD 的分布式版本 http s
  • 在带有子图的 geopandas 图中添加图例会改变图的大小

    我想用 matplotlib 子图绘制两个 GeoPandas 图 两张地图具有相同的图例 因此我只想有一个图例 但是 如果我向 GeoPandas 图之一添加图例 该图就会变得稍微小一些 这是一个问题 因为这两个图的大小会变得不同 这是我
  • HighlightBrushKey 设置在 Windows 7 中不起作用

    我在资源字典中定义了以下样式
  • 如何将数据组值分配给用 C# 创建的 html 元素?

    我有一个场景 我需要有条件地向上滑动 或隐藏 控件 元素集 我喜欢我找到的答案here来自 QBM5 关于将数据组分配给可以向上滑动的控件 请原谅我的语法 如下所示
  • Socket.IO版本输出

    我升级了套接字 io从 0 9 16 到 1 0 6 并用于输出如下版本 var io require socket io console log Socket IO Version io version 会给我 Socket IO Ver
  • 语法错误:在“<”之前缺少“,”

    很长一段时间后 我才开始用 c 编码 也许我在这里遗漏了一些语法上明显的东西 但我已经搜索了很长时间 但在任何地方都找不到对我的问题的引用 我正在尝试创建一个自定义 C 类set and multiset 这是我的班级cset h prag
  • Glassfish Web 部署后执行代码[重复]

    这个问题在这里已经有答案了 我正在尝试在 Glassfish 上运行 Java Web 服务 有一些初始化代码设置一些变量并从 Glassfish 环境本身检索一些信息 我在 WebService 类内的静态初始化程序中拥有该代码 但是该代
  • Qt QListWidgetItem 多行

    我有一个非常简单的QListWidget对象 我想构建一个文件夹列表 当我将一个项目添加到我的列表中时 我会执行以下操作 void LessCC on addFolderButton clicked QString dirName QFil
  • 在matlab中从邻接矩阵创建图

    我在 matlab 中有一个邻接矩阵 如何绘制它的图形 由于我有 gt 500 个节点 因此我无法将 gplot 与随机 或类似网格 坐标一起使用 所以假设你有生物信息学工具箱 the biograph功能非常适合您想做的事情 这是我过去所
  • SQLSRV 和存储过程中的多重选择

    我有一个存储过程 它创建一个临时表 test 用另一个表中的数据填充它 在此临时表上运行 3 个选择并删除它 原始表大小超过 20 GB 并且 3 个 SELECT 语句包含原始 SP 上的许多不同条件 我正在使用 SQLSRV 从 PHP
  • 如何扩展 Bitmap 类

    我正在尝试扩展 Bitmap 类 以便我可以将自己的效果应用于图像 当我使用这段代码时 namespace ImageEditor public class Effects System Drawing Bitmap public void
  • 检测已安装的 Outlook 并动态加载 INterop.Outlook

    我在 VS2010 中有一个 Windows 窗体应用程序 它引用了 Interop Outlook 2003 然后 我重新安装了Windows XP和VS2010 但没有安装Outlook 现在 该项目无法编译 我认为 如果 Outloo
  • 卸载后无法安装cocoa pods,导致错误

    我删除了可可豆荚 因为它声称已安装 但后来一直说找不到命令豆荚 当尝试重新安装 cocoapods 时 sudo gem install cocoa pods v 我收到此错误 错误 执行 gem 时 Errno EPERM 不允许操作 u
  • Kotlin 中带参数的单例

    我正在尝试将 Android 应用程序从 Java 转换为 Kotlin 应用程序中有一些单例 我为没有构造函数参数的单例使用了一个伴随对象 还有另一个带有构造函数参数的单例 Java代码 public class TasksLocalDa
  • 在 React.js 中播放声音

    import React Component from react import Button Input Icon Dropdown Card from semantic ui react import Link from react r
  • 如何确定屏幕高度和宽度

    我在 Flutter 上创建了一个新应用程序 在不同设备之间切换时遇到了屏幕尺寸问题 我使用 Pixel 2XL 屏幕尺寸创建了应用程序 因为我的容器的子级为ListView它要求我包含容器的高度和宽度 因此 当我将设备切换到新设备时 容器
  • 如何使用 Eigen 库计算零空间的基础?

    如何计算零空间的基础带有特征库的矩阵 我试图找到显式函数名计算空基 并且作为解决方法 找到方法计算矩阵的 rref 因为我们能够从 rref 获得零基础 但我找不到任何相关的函数名称 我认为必须有解决方案 但我对 Eigen 库了解不多 而
  • 如何使用 dcast 将一列拆分为不同的列而不聚合?

    我正在尝试使用 dcast 重塑我的数据 我正在处理每个样本有 10 30 个样本单元的样本 我无法汇总我的数据 我的数据是这样的格式 ID total sample 1 1 sample 1 0 sample 1 2 sample 1 1