当在dplyr中对多个列使用mutate时,我如何通过行名称引用另一个数据框?

uajslkp6  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(151)

我需要一个正确方向的推动...或者一个进一步查看的提示。我有一个包含样本分析结果的大型数据框-一个关键列,然后是几个分析目标列。我设法过滤了某些条件,总结了一些统计数据,并将它们存储在第二个数据框中。(dft2_stat_norm)
现在我想按列将原始(未过滤的)tibble的所有目标值(例如“dft_Resp_norm”以下)除以存储在第二tibble中的相应(行)值。我将所有目标存储在向量“analyses”中。列和行由目标描述(例如“G444”)链接。
1.你能提出一个解决办法吗?
1.你能推荐一个来源吗(对于横向进入者来说是全面的;))进一步阅读这方面的内容?
谢谢你!
第一个
我直接试过了......

dft_MOM_full <- df_Resp_full %>%
  select(1:7) %>%
  mutate(across(any_of(analytes); -?-
  )

但是我可以将列名链接到第二个tibble中的相应行,我尝试了分组...

dft_MOM_full <- df_Resp_full %>%
  select(1:7) %>%
  pivot_longer(any_of(analytes),
               names_to = "target",
               values_to = "MOM") %>%
  mutate(MOM = MOM / -?-        
  )

...但我没有设法找到如何将组名与第二个tibble关联起来

ryevplcw

ryevplcw1#

使用left_join可以执行以下操作:

library(dplyr)
library(tidyr)

analytes <- dft2_stat_norm$An_Names

dft_MOM_full <- dft_Resp_norm %>%
  pivot_longer(any_of(analytes),
               names_to = "target",
               values_to = "MOM") |> 
  left_join(dft2_stat_norm, by = c("target" = "An_Names")) |> 
  mutate(MOM = MOM / median_Resp_norm)

dft_MOM_full
#> # A tibble: 15 × 7
#>    Datum      Lfd_Nr Probe  cond  target   MOM median_Resp_norm
#>    <chr>       <int> <chr>  <chr> <chr>  <dbl>            <dbl>
#>  1 09.01.2020     16 NK     NK    G444   0.864          0.00678
#>  2 09.01.2020     16 NK     NK    G448   0.849          0.0696 
#>  3 09.01.2020     16 NK     NK    S453   0.471          0.126  
#>  4 04.02.2020     37 NK     NK    G444   0.975          0.00678
#>  5 04.02.2020     37 NK     NK    G448   0.875          0.0696 
#>  6 04.02.2020     37 NK     NK    S453   0.749          0.126  
#>  7 12.02.2020     57 NK     NK    G444   0.901          0.00678
#>  8 12.02.2020     57 NK     NK    G448   0.968          0.0696 
#>  9 12.02.2020     57 NK     NK    S453   0.921          0.126  
#> 10 13.03.2020     67 NK-2   NK    G444   0.180          0.00678
#> 11 13.03.2020     67 NK-2   NK    G448   0.974          0.0696 
#> 12 13.03.2020     67 NK-2   NK    S453   0.913          0.126  
#> 13 13.03.2020     68 NK-007 NK    G444   2.04           0.00678
#> 14 13.03.2020     68 NK-007 NK    G448   1.65           0.0696 
#> 15 13.03.2020     68 NK-007 NK    S453   2.85           0.126

相关问题