R语言 读取列(列名)和行(列内容)之间没有分隔符的.txt文件

ekqde3dh  于 2023-01-22  发布在  其他
关注(0)|答案(2)|浏览(245)

我有几个.txt文件,我想读取,然后rbind在R中。我希望每个.txt文件生成1行和115列。第一个问题:我面临以下警告消息:“readTableHeader在...上找到不完整的最后一行”但我有几个文件,我无法导航到每个文件的最后一行并按Enter键。我在互联网上找到的一些解决方案不起作用,因为下面的第二个问题。

第二个问题:列名(Columns)和列的内容(Rows)没有分隔符。.txt文件如下所示:“DIARREIA”:1,“DISPNEIA”:2,注意“DIARREIA”和“DISPNEIA”是列名,而1和2是列内容。列名称和列内容之间有冒号(:)。

这里是我的代码和2个文件作为例子可在https://drive.google.com/drive/folders/16U8J12Ld7PI5DI-ph_2QCysTxFGKZ-QP?usp=share_link

````setwd("C:/User/BOX")
    unzip("C:/User/BOX/data.zip")
    list.files()
    temp = list.files(pattern = "*.txt")
    df = do.call("rbind", lapply(temp, function(x) read.table(x, stringsAsFactors = T, header = TRUE)))```

有什么需要帮忙的吗?先谢了!

xdyibdwo

xdyibdwo1#

你好巴普蒂斯塔:安装jsonlite如果你没有安装它,并尝试这样:

# this line installs jsonlite
if(!("jsonlite" %in% installed.packages())) install.packages("jsonlite")

setwd("C:/User/BOX")
unzip("C:/User/BOX/data.zip")
temp <- list.files(pattern = "*.txt")
df <- do.call("rbind", lapply(temp, jsonlite::read_json))
qyzbxkaa

qyzbxkaa2#

你已经找到了一些Debian控制文件的医疗记录。阅读.dcf和正确格式的.dcf文件的解释。你可以得到这个结果

subject1_2_4
  subject PERDADEPALADAR1 PERDADEPALADAR ALTOFLUXOCATETERNASAL
1       1    false, false              1                 false
2       2              NA              2                 false
  INSUFICINCIARENAL1           DATADEALTADAUTI          DATADEADMISSOUTI
1              false                                                    
2              false 9\\/17\\/2020 12:00:00 AM 9\\/12\\/2020 12:00:00 AM
  IMUNOMODULADORQUAIS                DATADAALTA SITUAODOCASODESRAG DIARREIA
1                     10\\/6\\/2020 12:00:00 AM                  0        1
2                     9\\/19\\/2020 12:00:00 AM                  1        2
  DESFECHODOPARTO CLOROQUINAHIDROXICLOROQUINA LINFOCITOPENIA1
1              -1                       false           false
2              -1                       false           false
  OUTROSSINTOMASPERSISTENTES   PO2 DISPNEIA OXIGENOTERAPIA
1                  Ansiedade false        2           true
2                            false        1           true
  INSUFICINCIARESPIRATRIA PROFISSIONALDESADE TRIGLICRIDES FERRITINA1
1                       0                  2        false      false
2                       1                  0        false      false
               DATAADMISSAO TOSSE1 DOENAHEMATOLGICACRNICA DDIMERO1 PARTO
1 9\\/24\\/2020 12:00:00 AM  false                  false    false     0
2 9\\/16\\/2020 12:00:00 AM  false                  false     true     0
  COINFECOES SNDROMEDEDOWN PERDADEOLFATO DIABETESMELLITUS RENDAFAMILIAR
1          1         false             1             true              
2          1         false             2            false              
  SATURAOO2 VENTILAOMECNICAINVASIVA DDIMERO
1        96                   false   false
2        96                   false    true
                                 ANTIBITICOSQUAISETEMPODEUSO
1        Ceftriaxona 2g 24\\/24h 3d\nTazocin 4.5mg 6\\/6h 7d
2 Azitromicina 500mg 24\\/24h 5d\nCeftriaxona 1g 24\\/24h 7d
  TRABALHODEPARTOPREMATURO VENTILAOMECNICAEMPOSIOPRONA OUTRASCAUSASDEADMISSOUTI
1                        0                       false                         
2                        0                       false                         
  OUTRASSEQUELAS DATARESULTADOCONFIRMATRIOPARACOVID TOSSE DOENCAHEPTICACRNICA
1                          8\\/1\\/2020 12:00:00 AM     2               false
2                         9\\/17\\/2020 12:00:00 AM     1               false
  PROTENACREATIVA1 ARTRALGIADORNASARTICULAES ENCAMINHAMETODEOUTROSERVIO  ASMA
1            false                     false                          2 false
2            false                     false                          2 false
  TRIMESTREDEGESTACAO  PO21 INSUFICINCIARESPIRATRIA1 TIPODEPARTO OBESIDADE
1                     false                    false          -1     false
2                     false                     true          -1     false
  FRAQUEZA                OUTROS VOMITO DHLLDL1 IVERMECTINA
1    false         Febre\ncoriza      1   false       false
2    false Piora do quadro geral      2   false       false
  DIAGNSTICOCLNICOINICIAL ADMISSOUTI ALTOFLUXOMASCARA VITAMINAC FADIGA
1       Pneumonia e COVID          2            false     false      2
2       Pneumonia e COVID          1             true     false      2
  PROTENACREATIVA VITAMINAD       QUAISCOINFECES IMUNODEFICINCIA COCLHICINA
1           false     false            Pneumonia           false      false
2           false     false Pneumonia bacteriana           false      false
  ONDEFOIREALIZADOOPRIMEIROATENDIMENTODOPACIENTE
1                                              6
2                                              6
  ANTICOAGULANTEQUAISETEMPODEUSO1 CONTATODE FALNCIADERGOS SEPSE PERDADEOLFATO1
1       Clexane 40mg 24\\/24h 12d         0         false     0          false
2        Clexane 40mg 24\\/24h 7d         1         false     0          false
  INSUFICINCIARENAL EXPOSICAO DORABDOMINAL CHOQUE TCNAINTERNAO
1                 0        -1            2  false            0
2                 0        -1            2  false            2
  DESCONFORTORESPIRATRIO DHLLDL ANTIVIRAISQUAISETEMPODEUSO NITAXOZANIDA
1                      2  false                                   false
2                      2  false                                   false
                       DATA SEPSE1 DOENANEUROLGICACRNICA ZINCO PACIENTEGESTANTE
1 8\\/27\\/2022 12:00:00 AM  false                 false false                0
2 8\\/26\\/2022 12:00:00 AM  false                 false false                0
  OUTROSSINAISDEGRAVIDADE TIPODEEXAME DOENCACARDIOVASCULARCRNICA
1                                   0                       true
2                                   0                      false
  PARALISIADEDOENTECRTICO DOENARENALCRNICA1 TEMPERATURA
1                   false             false       36\n9
2                   false             false       36\n5
  FATORESDERISCOPARAGRAVIDADEEMGESTANTE INSUFICINCIACARDACA TRIGLICRIDES1
1                                    -1               false         false
2                                    -1               false         false
  FALTADEAR AMNSIAESQUECIMENTO   CORTICOIDESQUAISETEMPODEUSO LINFOCITOPENIA
1     false              false Dexametasona 6mg 24\\/24h 10d          false
2     false              false  Dexametasona 6mg 24\\/24h 7d          false
  OUTRAPNEUMOPATIACRNICA DORDEGARGANTA DESFECHOCLNICODOPACIENTE FIBROSEPULMONAR
1                  false             2                        1           false
2                  false             2                        1           false
  BAIXOFLUXOCATETERNASAL RACA MIALGIADORNOCORPO DOENARENALCRNICA FERRITINA SEXO
1                   true   -1             false            false     false    0
2                   true   -1             false            false     false    0
  PARADACARDIORRESPIRATRIA MIALGIA PURPERA ESPECTROCLNICOADMISSO TROMBOSE
1                    false       2   false                     1    false
2                    false       2   false                     1    false
  ENDERECOTIPO
1            0
2            0
>

但是还有一些麻烦的事情要做,这可以在R中完成,在文本编辑器中可能更容易。考虑到.dcf规则,我们可能(已经将subject1和subject2复制并粘贴到一个文本文件中)

subject1_2_step1 <- gsub('\\{', '', subject1_2)
subject1_2_step2 <- gsub('\\}', '', subject1_2)
subject1_2_step3 <- gsub(',', '\n', subject1_2)
subject1_2_step4_dcf <- read.dcf(textConnection(subject1_2_step3), all = TRUE)
Error in read.dcf(textConnection(subject1_2_step3), all = TRUE) : 
  Invalid DCF format.
Regular lines must have a tag.
Offending lines start with:
  list(c("false
  9\"
  "false
  5\"
  ))

在文本编辑器中更容易看到,这些(9和5)是之前的标签:值对的延续,可能是临床医生的危急指示,并且应该在它们之前有一个空格。您可以使用regex,找到它们并放置空格,最后您仍然不会有subject:1subject:2,如上所示,因为它们不在记录中,它们是文件名。对于jsonlite可能也是如此。并将所有的'"'替换为',以便更容易阅读列名。

相关问题