R: читать таблицу с несколькими разделителями и паразитами? - PullRequest
1 голос
/ 16 апреля 2020

Я получил этот тип стола, доступно также здесь

enter image description here

Интересно, как эффективно открыть стол в R?

Мой вывод должен быть разбит на 3 отдельных столбца, без скобок::

      id   type  V1  
1 13242924 'SA'  1 
2 13035909 'SA'  1 
3 6685553  'SA'  1 
4 12990163 'SA'  1  

Пока я думал разбить его на несколько шагов:

  • откройте файл в формате .csv с разделителем \t,
  • используйте несколько gsub() для замены обеих скобок,
  • разделите первый столбец на две и т. Д. c.

Не проще ли? Также кажется, что optim$V1 <- gsub('(', "", optim$V1) просто не удаляет парантезы.

df<- read.csv("C:/sample.csv",
               sep =  "\t",
               header = F)

# Replace the parantheses:
optim$V1 <- gsub('(', "", optim$V1)

Ответы [ 2 ]

3 голосов
/ 16 апреля 2020

Одним из способов было бы прочитать его, используя readLines(), очистить его, а затем снова прочитать его с помощью read.table().

txt <-  readLines("C:/sample.csv")

read.table(text = gsub("[()\",\t]", " ", txt))

        V1 V2 V3
1 13242924 SA  1
2 13035909 SA  1
3  6685553 SA  1
4 12990163 SA  1
5 13243126 SA  1
6 12941091 SA  1
7 12939233 SA  1
8 13242835 SA  1
9  6685130 SA  1
1 голос
/ 16 апреля 2020

Здесь вы go, (Не уверен, что мы сможем что-то сделать при загрузке данных, но по методу ниже вы определенно используете пост-загрузку данных)

library(dplyr)

(d <- tibble(id = c("(123","(24"),
            type = c("'sa')", "'sa')")))

d %>% mutate_at(vars(id, type), ~str_remove_all(.x, pattern = "\\(|\\)"))

с использованием базы R

gsub("\\(", "", d$id) 

Примечание. Для скобок необходимо использовать escape-символ. см здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...