当前位置: 首页 > 知识库问答 >
问题:

如何通过在另一列 r 中使用多个变量来改变新列

商振
2023-03-14

嗨,我想通过使用mutate函数来创建一个新变量Foldchange。但是我想使用来自同一列的值来计算这个值。有没有什么方法可以计算一个新变量,从同一列中折叠更改,而无需重新排列表格,这样表格就不需要拆分了?

下面是一个清晰的例子:

  Plate Sample_ID Visit  Bead_MFI Phago_Score mean_phago
 <fct> <chr>     <fct>        <int>       <dbl>      <dbl>
 4     100004    V1            1199        237.       253.
 4     100077    V1            1522        405.       396.
 4     100077    V2            1349        324.       814.
 4     100004    V2            1518        466.       867

我想要的输出类似于使用:

test %>% group_by("Sample", "Plate") %>% mutate (Foldchange = ((mean_phago$V2-mean_phago$V1)/mean_phago$V1))

获取

Plate Sample_ID Visit  Bead_MFI Phago_Score mean_phago  Foldchange 
 <fct> <chr>     <fct>        <int>       <dbl>      <dbl>
 4     100004    V1            1199        237.       253.  2.42
 4     100077    V1            1522        405.       396.  1.11
 4     100077    V2            1349        324.       834.  1.11
 4     100004    V2            1518        466.       867   2.42

显然,我不能使用此代码基于V1和V2变量进行选择,但这只是为了说明。我希望通过这种方式,我可以保持我的附加表的完整性,折叠更改将具有重复值,但此时没关系。

提前感谢您的任何帮助,对R来说还是很新的!

马里语

共有1个答案

景鸿晖
2023-03-14

我们需要根据逻辑条件进行子集

library(dplyr)
test %>% 
    group_by(Plate) %>%
    mutate(Foldchange =  (mean_phage[Visit == 'V2'] - 
          mean_phage[Visit == 'V1'])/mean_phage[Visit =='V1']) 

或者如果每个组只有一个“V1”、“V2”,可以使用diff

test %>% 
    arrange(Plate, desc(Visit)) %>%
    group_by( Plate) %>%
    mutate(Foldchange = diff(mean_phage)/last(mean_phage))
 类似资料:
  • 最近没有使用当前tidyverse动词来回答这个问题(R 4.1 所需的输出应如下所示。感谢您对此的任何帮助!

  • 可能重复: Java中的动态变量名: 假设我有一个字符串,如下所示。 现在,我想创建一个字符串,但是字符串的变量将被称为“Hello”。为了使字符串名为“Hello”,我必须访问string以获取名称“Hello”,这样我就可以将其用作变量名。下面是我想看的。 感谢您的努力,请尝试向我解释,因为我是Java初学者D

  • rank ▲ ✰ vote url 16 789 431 938 url 怎么用引用来改变一个变量? Python的文档对参数传递的是值还是引用没有明确说明,下面的代码没有改变值Original class PassByReference: def __init__(self): self.variable = 'Original' self.Change(

  • 问题内容: 如何在同一个变量中调用另一个变量? 问题答案: 首先声明您的方法以接受参数: 然后通过: 使用实例变量不是一个很好的选择,因为它将需要在调用 之前 调用一些代码来设置值,并且对此没有控制权,这可能会导致错误。而且它也不是线程安全的。

  • 问题内容: 我在Javascript中有一组全局计数器变量: 等等 然后,我有了一个Javascript函数,该函数接受一个映射到这些全局计数器的“索引”数字。在此函数内部,我需要使用传递给该函数的“索引”值来读写这些全局计数器。 我希望它如何工作的示例,但当然根本不起作用: 我希望我要实现的目标是明确的。如果没有,我会尽力澄清。谢谢。 编辑说明: 我不是要增加计数器的名称,而是要增加计数器包含的

  • 我有数据集,我需要调整通货膨胀的多个变量。它看起来像这样。 我需要把这些都放在一个恒定的格式中(比如2020美元)。我可以用< code>priceR包中的< code > adjust _ for _ inflation 函数很容易地做到这一点。然而,有很多价格变量,所以我想自动创建它们。我一直在尝试使用< code > cross ,但它不起作用。以下是我一直在尝试的。 据我所知,这应该是一个