【问题标题】:Rearranging data from tibble into a dataframe in R将 tibble 中的数据重新排列到 R 中的数据框中
【发布时间】:2022-01-01 09:53:48
【问题描述】:

我在 R 中有一个这样排列的小标题(只是前 20 行的数千行):

小标题:20 × 4

TF confidence target mor
1 Ahr B Cyp1a1 1
2 Ahr B Cyp1a2 1
3 Ahr B Cyp1b1 1
4 Ahr B Fos 1
5 Ahr B Myc 1
6 Ahr B Ugt1a7c 1
7 Ahr B Ugt1a6a 1
8 Ahr B Ugt1a6b 1
9 Ahr B Asap1 1
10 Ahr B Erg 1
11 Ahr B Vgll4 1
12 Ar A Abce1 1
13 Ar A Acad12 1
14 Ar A Acad10 1
15 Ar A Ahsg 1
16 Ar A Akr1b3 1
17 Ar A Akt1 1
18 Ar A Anapc10 1
19 Ar A Ap2m1 1
20 Ar A Appbp2 1

我想把它安排成这样:

TF Description Targets
Ahr None Cyp1a1 Cyp1a2 Cyp1b1 Fos Myc Ugt1a7c Ugt1a6a Ugt1a6b Asap1 Erg Vgll4
Ar None Abce1 Acad12 Acad10 Ahsg Akr1b3 Akr1b3 Akt1 Anapc10 Ap2m1 Appbp2

...表格有数千行。对于给定的 TF 值,可以有不同数量的目标。给定第一个表,如何在 R 中将第二个表创建为数据框?

谢谢!

【问题讨论】:

标签: r tidyverse


【解决方案1】:
library(dplyr)

df %>% 
  group_by(TF) %>% 
  summarise(Targets = list(target))

#>    TF                                                                        Targets
#> 1 Ahr Cyp1a1, Cyp1a2, Cyp1b1, Fos, Myc, Ugt1a7c, Ugt1a6a, Ugt1a6b, Asap1, Erg, Vgll4
#> 2  Ar              Abce1, Acad12, Acad10, Ahsg, Akr1b3, Akt1, Anapc10, Ap2m1, Appbp2

这会产生一个所谓的列表列(Targets 是字符向量列表),它适用于每个 TF 的不同数量的目标。


有数据:

df <- read.table(text =
'TF confidence  target  mor
Ahr B   Cyp1a1  1
Ahr B   Cyp1a2  1
Ahr B   Cyp1b1  1
Ahr B   Fos 1
Ahr B   Myc 1
Ahr B   Ugt1a7c 1
Ahr B   Ugt1a6a 1
Ahr B   Ugt1a6b 1
Ahr B   Asap1   1
Ahr B   Erg 1
Ahr B   Vgll4   1
Ar  A   Abce1   1
Ar  A   Acad12  1
Ar  A   Acad10  1
Ar  A   Ahsg    1
Ar  A   Akr1b3  1
Ar  A   Akt1    1
Ar  A   Anapc10 1
Ar  A   Ap2m1   1
Ar  A   Appbp2  1',
header = TRUE)

【讨论】:

  • 谢谢!这正是我想要的。如何将此输出转换为数据框?
  • 已经是数据框了。如果要剥离tibble类,可以通过as.data.frame
  • 太棒了!效果很好,谢谢!
猜你喜欢
  • 2013-07-03
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多