如何对熔化的数据帧进行零归一化?

2024-03-19

假设我有这个熔化的 data.frame

molten <- data.frame(
  gene = c("a1", "b1", "a1", "b1", "a1", "b1"),
  count = c(3, 4, 5, 2, 6, 7),
  condition = c("A", "A", "B", "B", "C", "C")
)
#   gene count condition
# 1   a1     3         A
# 2   b1     4         A
# 3   a1     5         B
# 4   b1     2         B
# 5   a1     6         C
# 6   b1     7         C

看起来像未融化的

molten %>% 
  dcast(gene ~ condition, value.var = "count")
#   gene A B C
# 1   a1 3 5 6
# 2   b1 4 2 7

如何从所有其他数字列(本例中为 B 和 C)中减去 A 列。我希望最终的输出是熔化的,但我不知道这是否可以直接完成,或者我是否必须解熔,减去,然后熔化。最终输出应如下所示:

#   gene A B C
# 1   a1 0 2 3
# 2   b1 0 -2 3

Update:

我还对更复杂的场景感兴趣:

molten <- data.frame(
  gene = c("a1", "b1", "a1", "b1", "a1", "b1"),
  count = c(3, 4, 5, 2, 6, 7),
  condition = c("A", "A", "B", "B", "C", "C"),
  day = c(0, 0, 1, 1, 2, 2)
)

@eipi10提出的解决方案给出了错误:

molten %>% 
  group_by(gene, condition) %>%
  mutate(count = count - count[day == 0])
Error: incompatible size (0), expecting 1 (the group size) or 1

这是我的解决方法:

x <- list(a1 = 3, b1 = 4)
molten %>% 
  group_by(gene, condition) %>%
  mutate(count = count - x[[gene]])

library(dplyr)

molten %>% group_by(gene) %>%
  mutate(count = count - count[condition=="A"])

    gene count condition
  (fctr) (dbl)    (fctr)
1     a1     0         A
2     b1     0         A
3     a1     2         B
4     b1    -2         B
5     a1     3         C
6     b1     3         C

UPDATE:为了回答你的评论,在你的第二个例子中,你分组gene and condition。然后你想要减去的值count for day==0. But day仅当condition=="A". For condition“B”或“C”从来没有一行day==0。以下是我们自己进行子集化的示例中发生的情况:

m = molten

x = m$count[m$gene=="a1" & m$condition=="B"] 

x
[1] 5

y = m$count[m$gene=="a1" & m$condition=="B" & m$condition=="A"]

y
数字(0)

numeric(0)是长度为零的数值向量。自从x=5 and y=numeric(0)我们想要x - y,我们要求 R 返回结果5 - numeric(0).

5 - numeric(0)    

数字(0)

length(numeric(0))

[1] 0

mutate期望计算返回一个长度等于组中行数(在本例中为 1)或 1 的向量,但返回值的长度为零,从而导致错误。

我不太清楚为什么5 - numeric(0)回报numeric(0)同时,例如,sum(numeric(0), 5)返回 5。也许这有一个很好的理由,或者也许这只是让 R 程序员保持警惕的迷人怪癖之一。无论如何,这里的错误是好的,因为它帮助我们意识到,当condition != "A"因此我们的代码并没有按照我们的想法去做。

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

如何对熔化的数据帧进行零归一化? 的相关文章

  • AttributeError:“DataFrame”对象没有属性“ix”

    当我尝试使用 pandas 数据框的 ix 属性拉出列时 出现此错误 例如df ix col header AttributeError DataFrame object has no attribute ix 该脚本今天早上有效 但今天下
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • 使用 Pandas 数据框中的字数统计来删除仅包含一个单词的行

    我有一个包含 2 条记录的数据框 数据 id text 0001 The farmer plants grain 0002 tuna 我想统计一下里面的单词数text该数据框的列并删除只有一个单词的行 我知道如何计算单词数 count da
  • R 中的输出,避免写“[1]”

    I use print从 R 中的函数输出 例如 print blah blah blah 这输出 1 blah blah blah 到控制台 我怎样才能避免 1 和引号 Use cat Your string type cat查看帮助页面
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • 获取所有参数作为列表

    R 是否提供对象 函数 方法 关键字来获取所有函数参数 使用一个例子 function a b default 会提供a and b也 在函数环境内 有没有类似的说法list 这还包括a and b在结果中 或者换一种方式 简写list a
  • R 中的聚类分析:确定最佳聚类数

    如何选择最佳的聚类数量来进行 k 均值分析 绘制以下数据的子集后 多少个簇比较合适 如何进行聚类树突分析 n 1000 kk 10 x1 runif kk y1 runif kk z1 runif kk x4 sample x1 lengt
  • 使用 ape 包在 R 中进行标签和色叶树状图(系统发育)

    继上一篇文章之后 r 中的标签和彩色叶树状图 https stackoverflow com questions 18802519 label and color leaf dendrogram in r 我有一个后续问题 我的问题与提到的
  • 如何替换R中的“意外转义字符”

    当我尝试从 Facebook URL 的字符对象解析 JSON 时 我收到 fromJSON data 中的错误 位置 130 处出现意外的转义字符 o 看一下这个 library RCurl library rjson data lt g
  • Pandas:根据其他列值有条件地替换值

    我有一个数据框 df 如下所示 environment event time 2017 04 28 13 08 22 NaN add rd 2017 04 28 08 58 40 NaN add rd 2017 05 03 07 59 35
  • 从频率表生成 data.frame

    我在 2 4 数组中有包含 500 个观察值的合成数据 datax array c 120 181 50 43 41 33 24 8 dim c 2 4 dimnames datax list gender c male female pu
  • R 中 x 轴曲线的阴影面积

    所以我有一个位于 x 轴下方和上方的图表 并且想要对线和 0 之间的区域进行着色 在这里 我尝试使用多边形函数 但它只给出曲线下的面积 plot year difference1 type l polygon year difference
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • 将具有多个时区的 pandas 列转换为单个时区

    Problem 我在 pandas DataFrame 中有一个列 其中包含带有时区的时间戳 此列中有两个不同的时区 我需要确保只有一个 这是该列末尾的输出 260003 2019 05 21 12 00 00 06 00 260004 2
  • 无法使用 cairo 安装 R

    我正在从源代码安装 R cd R 3 2 2 configure prefix pwd with cairo yes with readline no with libpng yes with x no 我已经从源代码安装了 cairo v
  • Pandas 数据框可对多列和要列出的值进行字典

    我有一个数据框 id key a1 1 a2 1 a3 1 a4 2 a5 2 a6 3 我想创建一本字典key作为机器号 并且id列作为列表 like 1 a1 a2 a3 2 a4 a5 3 a6 我可以先使用 groupby 然后再使
  • 如何在R中绘制仪表图表?

    如何在 R 中绘制以下图 Red 30 Yellow 40 Green 30 Needle at 52 所以这里有一个完整的ggplot解决方案 注意 从原始帖子中编辑 在仪表中断处添加数字指示器和标签 这似乎是OP在评论中所要求的 如果不
  • 如何使用 PySpark 预处理图像?

    我有一个项目 需要为 1 设置大数据架构 AWS S3 SageMaker 的概念验证使用 PySpark 预处理图像 2 执行 PCA and 3 训练一些机器或深度学习模型 我的问题是了解如何使用 PySpark 操作图像数据 但无法在

随机推荐