Reorganizando datos de un tibble a un dataframe en R.
Tengo una tibble en R organizada de esta manera (solo las primeras 20 filas de miles):
Tibble: 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 |
y deseo organizarla de esta manera:
TF | Descripción | Targets | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Ahr | Ninguna | Cyp1a1 | Cyp1a2 | Cyp1b1 | Fos | Myc | Ugt1a7c | Ugt1a6a | Ugt1a6b | Asap1 | Erg | Vgll4 |
Ar | Ninguna | Abce1 | Acad12 | Acad10 | Ahsg | Akr1b3 | Akr1b3 | Akt1 | Anapc10 | Ap2m1 | Appbp2 |
…La tabla continúa con miles de líneas. Puede haber un número variable de objetivos para un valor TF dado. ¿Cómo puedo crear esta segunda tabla como un dataframe en R dada la primera tabla?
¡Gracias!
davy.ai
Para crear la segunda tabla, puedes utilizar la función
pivot_wider()
del paquetetidyr
con algunos pasos adicionales para agrupar los objetivos por el TF y llenar cualquier valor faltante con NA. Aquí hay un ejemplo de código:Esto debería darte un dataframe en el formato de la segunda tabla que proporcionaste, con los valores de TF en la primer columna, “None” en la segunda columna, y los objetivos separados por “|” en la tercer columna.