【问题标题】:data cleaning with R languageR语言数据清洗
【发布时间】:2021-09-10 03:28:14
【问题描述】:

我必须从一个 txt 文件(我从原始 pdf 文件中获得)构建一个访问数据库。 这是为了向免费的测验制作软件(quizfaber.com)提供一些东西 这是我的输入文件:

001. A norma del disposto di cui al co. 2, art. 36, Reg. Ord. Penit., negli istituti penitenziari come sono disciplinate le modalità relative allo svolgimento dei vari servizi predisposti per i detenuti e per gli internati? 
A)Con singoli provvedimenti del direttore dell'istituto.
B)Con regolamento interno dell'istituto.
C)Con singoli atti del provveditore regionale competente.
002. A norma del disposto di cui al co. 7 , art. 47-quinquies, Ord. Penit., la detenzione domiciliare speciale può essere concessa anche al padre detenuto? 
A)Sì, alle stesse condizioni previste per la madre, in alternativa alla madre.
B)Sì, alle stesse condizioni previste per la madre, ma solo se la madre è deceduta e non vi è modo di affidare la prolead altri che al padre.
C)Sì, alle stesse condizioni previste per la madre, se la madre è deceduta o impossibilitata e non vi è modo di affidarela prole ad altri che al padre.
003. A norma del disposto di cui al co. 8-bis, art. 656, c.p.p. (Esecuzione delle pene detentive), quando il pubblico ministero può disporre la rinnovazione della notifica dell'avviso dell'ordine di esecuzione e del decreto di sospensione? 
A)Solo quando è sicuramente provato che il condannato non abbia avuto effettiva conoscenza dell'avviso.
B)In nessun caso.
C)Quando è provato o appare probabile che il condannato non abbia avuto effettiva conoscenza dell'avviso.
004. Quale sanzione disciplinare di cui all'art. 39, Ord. Penit., non può avere durata massima di quindici giorni? 
A)Isolamento durante la permanenza all'area aperta.
B)Esclusione dalle attività in comune.
C)Esclusione dalle attività ricreative e sportive.
005. In materia di "alimentazione" l'art. 9, Ord. Penit. dispone, tra l'altro, che: 
A)Il vitto è somministrato, di regola, in locali all'uopo destinati.
B)I prezzi di vendita devono essere almeno inferiori del 30% rispetto a quelli comunemente praticati nel luogo in cui èsito l'istituto.
C)Il servizio di vettovagliamento di regola non è gestito direttamente dall'amministrazione penitenziaria.
006. A norma del disposto di cui all'art. 76, Reg. Ord. Penit., quale ricompensa può essere concessa dal consiglio di disciplina, ai detenuti e agli internati, se ricorrano i presupposti? 
A)Encomio.
B)Nessuna delle altre risposte è corretta; tutte le ricompense sono concesse dal direttore dell'istituto penitenziario o dalmagistrato di sorveglianza.
C)Proposta di licenza.
007. A norma del disposto di cui al co. 11, art. 11, Ord. Penit., nel caso di diagnosi anche sospetta di malattia contagiosa devono essere messi in atto tutti gli interventi di controllo per evitare insorgenza di casi secondari, compreso l'isolamento; chi deve essere immediatamente informato? 
A)Il difensore della persona contagiata.B)Il famigliari della persona contagiata.C)Il direttore dell'istituto.
008. A norma del disposto di cui all'art. 40, Ord. Penit., quale tra le seguenti non è una sanzione disciplinare deliberata al consiglio di disciplina? 
A)Isolamento durante la permanenza all'area aperta.
B)Esclusione da attività in comune.
C)Richiamo.
009. In materia di "alimentazione" l'art. 9, Ord. Penit. dispone, tra l'altro, che: 
A)Una rappresentanza di soggetti non detenuti o internati controlla l'applicazione delle tabelle e la preparazione delvitto.
B)Tutti i detenuti hanno la stessa alimentazione; l'istituto non può tener conto di eventuali diverse richieste anche sepreviste dal credo religioso.
C)Il servizio di vettovagliamento è di regola gestito direttamente dall'amministrazione penitenziaria.
010. Al condannato ammesso al regime di semilibertà possono essere concesse a titolo di premio una o più licenze di durata non superiore nel complesso a 45 giorni l'anno. Chi provvede alla concessione? 
A) Il tribunale di sorveglianza. B) Il direttore dell'istituto penitenziario. C) Il magistrato di sorveglianza.

这是两个请求的输出 txt 文件

第一

1; 1; 1; 001. A norma del disposto di cui al co. 2, art. 36, Reg. Ord. Penit., negli istituti penitenziari come sono disciplinate le modalità relative allo svolgimento dei vari servizi predisposti per i detenuti e per gli internati?; Y 
2; 1; 1; 002. A norma del disposto di cui al co. 7 , art. 47-quinquies, Ord. Penit., la detenzione domiciliare speciale può essere concessa anche al padre detenuto?; Y 
3; 1; 1; 003. A norma del disposto di cui al co. 8-bis, art. 656, c.p.p. (Esecuzione delle pene detentive), quando il pubblico ministero può disporre la rinnovazione della notifica dell'avviso dell'ordine di esecuzione e del decreto di sospensione?; Y 
4; 1; 1; 004. Quale sanzione disciplinare di cui all'art. 39, Ord. Penit., non può avere durata massima di quindici giorni?; Y
5; 1; 1; 005. In materia di "alimentazione" l'art. 9, Ord. Penit. dispone, tra l'altro, che:; Y 
6; 1; 1; 006. A norma del disposto di cui all'art. 76, Reg. Ord. Penit., quale ricompensa può essere concessa dal consiglio di disciplina, ai detenuti e agli internati, se ricorrano i presupposti?; Y 
7; 1; 1; 007. A norma del disposto di cui al co. 11, art. 11, Ord. Penit., nel caso di diagnosi anche sospetta di malattia contagiosa devono essere messi in atto tutti gli interventi di controllo per evitare insorgenza di casi secondari, compreso l'isolamento; chi deve essere immediatamente informato?; Y 
8; 1; 1; 008. A norma del disposto di cui all'art. 40, Ord. Penit., quale tra le seguenti non è una sanzione disciplinare deliberata al consiglio di disciplina?; Y
9; 1; 1; 009. In materia di "alimentazione" l'art. 9, Ord. Penit. dispone, tra l'altro, che:; Y
10; 1; 1; 010. Al condannato ammesso al regime di semilibertà possono essere concesse a titolo di premio una o più licenze di durata non superiore nel complesso a 45 giorni l'anno. Chi provvede alla concessione?; Y 

第二个

1;A)Con singoli provvedimenti del direttore dell'istituto.; N; 1
1;B)Con regolamento interno dell'istituto.; N; 2
1;C)Con singoli atti del provveditore regionale competente.; N; 3
2;A)Sì, alle stesse condizioni previste per la madre, in alternativa alla madre.; N; 4
2;B)Sì, alle stesse condizioni previste per la madre, ma solo se la madre è deceduta e non vi è modo di affidare la prolead altri che al padre.; N; 5
2;C)Sì, alle stesse condizioni previste per la madre, se la madre è deceduta o impossibilitata e non vi è modo di affidarela prole ad altri che al padre.; N; 6
3;A)Solo quando è sicuramente provato che il condannato non abbia avuto effettiva conoscenza dell'avviso.; N; 7
3;B)In nessun caso.; N; 8
3;C)Quando è provato o appare probabile che il condannato non abbia avuto effettiva conoscenza dell'avviso.; N; 9
4;A)Isolamento durante la permanenza all'area aperta.; N; 10
4;B)Esclusione dalle attività in comune.; N; 11
4;C)Esclusione dalle attività ricreative e sportive.; N; 12
5;A)Il vitto è somministrato, di regola, in locali all'uopo destinati.; N; 13
5;B)I prezzi di vendita devono essere almeno inferiori del 30% rispetto a quelli comunemente praticati nel luogo in cui èsito l'istituto.; N; 14
5;C)Il servizio di vettovagliamento di regola non è gestito direttamente dall'amministrazione penitenziaria.; N; 15
6;A)Encomio.; N; 16
6;B)Nessuna delle altre risposte è corretta; tutte le ricompense sono concesse dal direttore dell'istituto penitenziario o dalmagistrato di sorveglianza.; N; 17
6;C)Proposta di licenza.; N; 18
7;A)Il difensore della persona contagiata.; N; 19
7;B)Il famigliari della persona contagiata.; N; 20
7;C)Il direttore dell'istituto.; N; 21
8;A)Isolamento durante la permanenza all'area aperta.; N; 22
8;B)Esclusione da attività in comune.; N; 23
8;C)Richiamo.; N; 24
9;A)Una rappresentanza di soggetti non detenuti o internati controlla l'applicazione delle tabelle e la preparazione delvitto.; N; 25
9;B)Tutti i detenuti hanno la stessa alimentazione; l'istituto non può tener conto di eventuali diverse richieste anche sepreviste dal credo religioso.; N; 26
9;C)Il servizio di vettovagliamento è di regola gestito direttamente dall'amministrazione penitenziaria.; N; 27
10;A) Il tribunale di sorveglianza.; N; 28
10;B) Il direttore dell'istituto penitenziario.; N; 29
10;C) Il magistrato di sorveglianza.; N; 30

实际上我必须创建这两个访问表,问题和答案

然后我将关系设置为:

我不太清楚如何开始使用 R 语言来执行此任务。

首先我应该检查输入文件是否包含任何分号并转换为其他内容(例如_)

其次,我应该添加所有内容以表示表格的所有字段。除了渐进式索引之外,字段值是固定的

第三个我应该处理三个​​答案放在同一行的情况。

请您原谅这篇长篇文章,欢迎您提出所有建议。

【问题讨论】:

  • 提示 - 如果您想用 _ 替换 ; 的实例,请考虑使用类似 gsub(";", "_", data) 的东西

标签: r database data-cleaning


【解决方案1】:

您的第一个输出文件是问题列表。您的第二个输出文件是答案列表。简而言之,您的主要目标是将输入文件中的问题与答案分开,然后添加美学以满足所需的输出格式。

在下面的解决方案中,output1 是想要的问题信息,output2 是想要的答案信息。我在注释代码中添加了您声明的目标,以帮助展示每个部分是如何完成的。

library(stringr) # used for string manipulations (required for `str_extract_all()` below)

# read input file
f <- readLines(file("input_file.txt", open = "r")) 

# Firstable I should check if the input file contains any semicolon and trasform[sic] to something else (_ for example)
f <- gsub(";", "_", f)

# Second I should add all the stuff in order to represent all the fields of the table. The field values are fixed except for the indexes that are progressive
f_questions <- f[grepl("^[0-9]", f)] # selects lines that start with a digit (because they are questions) 

output1 <- paste0(1:length(f_questions), "; 1; 1; ", f_questions, "; Y")


f_answers <- f[grepl("^[A-C]", f)] # selects lines that start with capital letters "A" through "C" (because they are answers)

# Third I should deal with the case when the three answers are placed on the same line.
f_answers <- unlist(str_extract_all(f_answers, ".\\)[^.]+.")) # makes one answer per string (assuming all answers contain and end with a period)

output2 <- paste0(rep(1:(length(f_answers)/3), each = 3), ";", f_answers, "; N; ", 1:length(f_answers))
> output1
 [1] "1; 1; 1; 001. A norma del disposto di cui al co. 2, art. 36, Reg. Ord. Penit., negli istituti penitenziari come sono disciplinate le modalità relative allo svolgimento dei vari servizi predisposti per i detenuti e per gli internati? ; Y"                                                                      
 [2] "2; 1; 1; 002. A norma del disposto di cui al co. 7 , art. 47-quinquies, Ord. Penit., la detenzione domiciliare speciale può essere concessa anche al padre detenuto? ; Y"                                                                                                                                          
 [3] "3; 1; 1; 003. A norma del disposto di cui al co. 8-bis, art. 656, c.p.p. (Esecuzione delle pene detentive), quando il pubblico ministero può disporre la rinnovazione della notifica dell'avviso dell'ordine di esecuzione e del decreto di sospensione? ; Y"                                                      
 [4] "4; 1; 1; 004. Quale sanzione disciplinare di cui all'art. 39, Ord. Penit., non può avere durata massima di quindici giorni? ; Y"                                                                                                                                                                                   
 [5] "5; 1; 1; 005. In materia di \"alimentazione\" l'art. 9, Ord. Penit. dispone, tra l'altro, che: ; Y"                                                                                                                                                                                                                
 [6] "6; 1; 1; 006. A norma del disposto di cui all'art. 76, Reg. Ord. Penit., quale ricompensa può essere concessa dal consiglio di disciplina, ai detenuti e agli internati, se ricorrano i presupposti? ; Y"                                                                                                          
 [7] "7; 1; 1; 007. A norma del disposto di cui al co. 11, art. 11, Ord. Penit., nel caso di diagnosi anche sospetta di malattia contagiosa devono essere messi in atto tutti gli interventi di controllo per evitare insorgenza di casi secondari, compreso l'isolamento_ chi deve essere immediatamente informato? ; Y"
 [8] "8; 1; 1; 008. A norma del disposto di cui all'art. 40, Ord. Penit., quale tra le seguenti non è una sanzione disciplinare deliberata al consiglio di disciplina? ; Y"                                                                                                                                              
 [9] "9; 1; 1; 009. In materia di \"alimentazione\" l'art. 9, Ord. Penit. dispone, tra l'altro, che: ; Y"                                                                                                                                                                                                                
[10] "10; 1; 1; 010. Al condannato ammesso al regime di semilibertà possono essere concesse a titolo di premio una o più licenze di durata non superiore nel complesso a 45 giorni l'anno. Chi provvede alla concessione? ; Y"
> output2
 [1] "1;A)Con singoli provvedimenti del direttore dell'istituto.; N; 1"
 [2] "1;B)Con regolamento interno dell'istituto.; N; 2"
 [3] "1;C)Con singoli atti del provveditore regionale competente.; N; 3"
 [4] "2;A)Sì, alle stesse condizioni previste per la madre, in alternativa alla madre.; N; 4"
 [5] "2;B)Sì, alle stesse condizioni previste per la madre, ma solo se la madre è deceduta e non vi è modo di affidare la prolead altri che al padre.; N; 5"
 [6] "2;C)Sì, alle stesse condizioni previste per la madre, se la madre è deceduta o impossibilitata e non vi è modo di affidarela prole ad altri che al padre.; N; 6"
 [7] "3;A)Solo quando è sicuramente provato che il condannato non abbia avuto effettiva conoscenza dell'avviso.; N; 7"
 [8] "3;B)In nessun caso.; N; 8"
 [9] "3;C)Quando è provato o appare probabile che il condannato non abbia avuto effettiva conoscenza dell'avviso.; N; 9"
[10] "4;A)Isolamento durante la permanenza all'area aperta.; N; 10"
[11] "4;B)Esclusione dalle attività in comune.; N; 11"
[12] "4;C)Esclusione dalle attività ricreative e sportive.; N; 12"
[13] "5;A)Il vitto è somministrato, di regola, in locali all'uopo destinati.; N; 13"
[14] "5;B)I prezzi di vendita devono essere almeno inferiori del 30% rispetto a quelli comunemente praticati nel luogo in cui èsito l'istituto.; N; 14"
[15] "5;C)Il servizio di vettovagliamento di regola non è gestito direttamente dall'amministrazione penitenziaria.; N; 15"
[16] "6;A)Encomio.; N; 16"
[17] "6;B)Nessuna delle altre risposte è corretta_ tutte le ricompense sono concesse dal direttore dell'istituto penitenziario o dalmagistrato di sorveglianza.; N; 17"
[18] "6;C)Proposta di licenza.; N; 18"
[19] "7;A)Il difensore della persona contagiata.; N; 19"
[20] "7;B)Il famigliari della persona contagiata.; N; 20"
[21] "7;C)Il direttore dell'istituto.; N; 21"
[22] "8;A)Isolamento durante la permanenza all'area aperta.; N; 22"
[23] "8;B)Esclusione da attività in comune.; N; 23"
[24] "8;C)Richiamo.; N; 24"
[25] "9;A)Una rappresentanza di soggetti non detenuti o internati controlla l'applicazione delle tabelle e la preparazione delvitto.; N; 25"
[26] "9;B)Tutti i detenuti hanno la stessa alimentazione_ l'istituto non può tener conto di eventuali diverse richieste anche sepreviste dal credo religioso.; N; 26"
[27] "9;C)Il servizio di vettovagliamento è di regola gestito direttamente dall'amministrazione penitenziaria.; N; 27"
[28] "10;A) Il tribunale di sorveglianza.; N; 28"
[29] "10;B) Il direttore dell'istituto penitenziario. N; 29"
[30] "10;C) Il magistrato di sorveglianza.; N; 30"

深入研究代码

这些函数中的大多数都是值得熟悉的基本函数。 R 入门课程可能会涵盖它们。

代码中比较复杂的部分是str_extract_all()里面用到的regular expression,所以我在这里解释一下。

str_extract_all(f_answers, ".\\)[^.]+.") 从输入字符串f_answers 中提取所有出现的正则表达式模式".\\)[^.]+."

  • ".\\)[^.]+." 表示模式以通配符开头(表示为.),后跟右括号(表示为\\))。然后该字符串可以匹配任何字符中的一个或多个,除了句点,直到它到达句点 ([^.]+.)。 (仅供参考,最后一部分也可以编码为[^\\.]+\\.,以防止将句点(\\.)与通配符混淆。)

【讨论】:

  • 它就像一个魅力,tnx。我仍然需要解决一些问题,但他们认为 quizfaber 软件导入功能
猜你喜欢
  • 2020-10-01
  • 2021-02-04
  • 2023-03-22
  • 1970-01-01
  • 2021-12-23
  • 2021-02-04
  • 2019-03-15
  • 2021-11-21
  • 2018-07-01
相关资源
最近更新 更多