Как удалить символ в определенных столбцах в data.frame с R? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть список results из нескольких data.frames (каждый data.frame имеет 3 столбца).Это выглядит так:

> tail(results[[1]])
                    var1                var2        corr
4945 UniRef90_A0A075GGL3 UniRef90_A0A075GGW4 -0.12058932
4946 UniRef90_A0A075GGU1 UniRef90_A0A075GGW4 -0.01740142
4947 UniRef90_A0A075GGU4 UniRef90_A0A075GGW4  0.16400148
4948 UniRef90_A0A075GGV0 UniRef90_A0A075GGW4 -0.09698018
4949 UniRef90_A0A075GGV1 UniRef90_A0A075GGW4  0.22409572
4950 UniRef90_A0A075GGV8 UniRef90_A0A075GGW4  0.43184873

> tail(results[[2]])
                    var1                var2       corr
4945 UniRef90_A0A075GJW0 UniRef90_A0A075GKB8 -0.1059095
4946 UniRef90_A0A075GJW5 UniRef90_A0A075GKB8 -0.4336370
4947 UniRef90_A0A075GJX5 UniRef90_A0A075GKB8 -0.1875841
4948 UniRef90_A0A075GJY4 UniRef90_A0A075GKB8  0.2658149
4949 UniRef90_A0A075GJY8 UniRef90_A0A075GKB8 -0.2820792
4950 UniRef90_A0A075GJY9 UniRef90_A0A075GKB8 -0.2402827

Я свяжу эти фреймы данных только в один.Но это даст огромные данные.Вот почему я хотел бы удалить строку UniRef90_ в столбцах var1 и var2, чтобы уменьшить размер перед привязкой.

Любая помощь?

Ответы [ 2 ]

1 голос
/ 24 мая 2019

вы можете попробовать это на var1 и var2 перед сгибанием фреймов данных.

sub("UniRef90_","", dataframe$yourvariable)
0 голосов
/ 24 мая 2019

Мы можем перебрать list и удалить подстроку либо substring, либо str_remove

library(tidyverse)
map_df(results, ~ .x %>%
                   mutate_at(vars(matches('^var\\d+$')),
              list(~ str_remove(., "^UniRef90_"))))
#     var1       var2        corr
#1  A0A075GGL3 A0A075GGW4 -0.12058932
#2  A0A075GGU1 A0A075GGW4 -0.01740142
#3  A0A075GGU4 A0A075GGW4  0.16400148
#4  A0A075GGV0 A0A075GGW4 -0.09698018
#5  A0A075GGV1 A0A075GGW4  0.22409572
#6  A0A075GGV8 A0A075GGW4  0.43184873
#7  A0A075GJW0 A0A075GKB8 -0.10590950
#8  A0A075GJW5 A0A075GKB8 -0.43363700
#9  A0A075GJX5 A0A075GKB8 -0.18758410
#10 A0A075GJY4 A0A075GKB8  0.26581490
#11 A0A075GJY8 A0A075GKB8 -0.28207920
#12 A0A075GJY9 A0A075GKB8 -0.24028270

данные

results <- list(structure(list(var1 = c("UniRef90_A0A075GGL3", 
  "UniRef90_A0A075GGU1", 
"UniRef90_A0A075GGU4", "UniRef90_A0A075GGV0", "UniRef90_A0A075GGV1", 
"UniRef90_A0A075GGV8"), var2 = c("UniRef90_A0A075GGW4", 
 "UniRef90_A0A075GGW4", 
"UniRef90_A0A075GGW4", "UniRef90_A0A075GGW4", "UniRef90_A0A075GGW4", 
"UniRef90_A0A075GGW4"), corr = c(-0.12058932, -0.01740142, 0.16400148, 
-0.09698018, 0.22409572, 0.43184873)), class = "data.frame", row.names = c("4945", 
"4946", "4947", "4948", "4949", "4950")), 
 structure(list(var1 = c("UniRef90_A0A075GJW0", 
"UniRef90_A0A075GJW5", "UniRef90_A0A075GJX5", "UniRef90_A0A075GJY4", 
"UniRef90_A0A075GJY8", "UniRef90_A0A075GJY9"), var2 = c("UniRef90_A0A075GKB8", 
"UniRef90_A0A075GKB8", "UniRef90_A0A075GKB8", "UniRef90_A0A075GKB8", 
"UniRef90_A0A075GKB8", "UniRef90_A0A075GKB8"), corr = c(-0.1059095, 
-0.433637, -0.1875841, 0.2658149, -0.2820792, -0.2402827)),
class = "data.frame", row.names = c("4945", 
"4946", "4947", "4948", "4949", "4950")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...