Skip to content

Commit

Permalink
fixed an issue with using ifelse() for checking empty strings (short …
Browse files Browse the repository at this point in the history
…expl: it is not vectorized). This mainly had consequenses for the get_session_cases() dataset
  • Loading branch information
martigso committed Nov 29, 2023
1 parent 031195a commit e066a16
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 38 deletions.
9 changes: 7 additions & 2 deletions R/get_case.R
Original file line number Diff line number Diff line change
Expand Up @@ -126,15 +126,20 @@ get_case <- function(caseid = NA, good_manners = 0){

tmp <- read_html(base)

if(identical(tmp %>% html_elements("komite > id") %>% html_text(), character())) {
committee_id <- NA
} else {
committee_id <- tmp %>% html_elements("komite > id") %>% html_text()
}

tmp2 <- list(root = data.frame(response_date = tmp %>% html_elements("detaljert_sak > respons_dato_tid") %>% html_text(),
version = tmp %>% html_elements("detaljert_sak > versjon") %>% html_text(),
document_group = tmp %>% html_elements("detaljert_sak > dokumentgruppe") %>% html_text(),
finalized = tmp %>% html_elements("ferdigbehandlet") %>% html_text(),
reference = tmp %>% html_elements("henvisning") %>% html_text(),
id = tmp %>% html_elements("detaljert_sak > id") %>% html_text(),
req_text = tmp %>% html_elements("innstillingstekst") %>% html_text(),
committee_id = ifelse(identical(tmp %>% html_elements("komite > id") %>% html_text(), character()), "",
tmp %>% html_elements("komite > id") %>% html_text()),
committee_id = committee_id,
title_short = tmp %>% html_elements("korttittel") %>% html_text(),
decision_short = tmp %>% html_elements("kortvedtak") %>% html_text(),
parenthesis_text = tmp %>% html_elements("parentestekst") %>% html_text(),
Expand Down
13 changes: 11 additions & 2 deletions R/get_hearing_program.R
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,22 @@ get_hearing_program <- function(hearingid = NA, good_manners = 0){


if(identical(hearing_program_participants, list())){

if(identical(hearing_program_date, character())) {
hearing_program_date <- NA
}

if(identical(hearing_program_footnote, character())) {
hearing_program_footnote <- NA
}

tmp2 <- data.frame(response_date,
version,
hearing_id,
hearing_type,
committee_id,
hearing_program_date = ifelse(identical(hearing_program_date, character()), NA, hearing_program_date),
hearing_program_footnote = ifelse(identical(hearing_program_footnote, character()), NA, hearing_program_footnote),
hearing_program_date,
hearing_program_footnote,
order_number = NA,
text = NA,
time_indication = NA,
Expand Down
10 changes: 8 additions & 2 deletions R/get_question.R
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ get_question <- function(questionid = NA, good_manners = 0){

tmp <- read_html(base)

if(identical((tmp %>% html_elements("rette_vedkommende > id") %>% html_text()), character())) {
correct_person_id <- NA
} else {
correct_person_id <- tmp %>% html_elements("rette_vedkommende > id") %>% html_text()
}


tmp2 <- data.frame(
response_date = tmp %>% html_elements("besvart_av > respons_dato_tid") %>% html_text(),
version = tmp %>% html_elements("besvart_av > versjon") %>% html_text(),
Expand All @@ -98,8 +105,7 @@ get_question <- function(questionid = NA, good_manners = 0){
agenda_number = tmp %>% html_elements("dagsorden_saknummer") %>% html_text(),
moved_to = tmp %>% html_elements("flyttet_til") %>% html_text(),
id = tmp %>% html_elements("detaljert_sporsmal > id") %>% html_text(),
correct_person_id = ifelse(identical((tmp %>% html_elements("rette_vedkommende > id") %>% html_text()), character()), NA,
tmp %>% html_elements("rette_vedkommende > id") %>% html_text()),
correct_person_id,
correct_person_minister_id = tmp %>% html_elements("rette_vedkommende_minister_id") %>% html_text(),
correct_person_minister_title = tmp %>% html_elements("rette_vedkommende_minister_tittel") %>% html_text(),
sendt_date = tmp %>% html_elements("sendt_dato") %>% html_text(),
Expand Down
14 changes: 12 additions & 2 deletions R/get_result_vote.R
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,23 @@ get_result_vote <- function(voteid = NA, good_manners = 0){
x %>% html_elements("fast_vara_for > id") %>% html_text()
})

tmp2$permanent_sub_for <- unlist(sapply(sub_holder, function(x) ifelse(identical(x, character()), NA, x)))
tmp2$permanent_sub_for <- unlist(sapply(sub_holder, function(x) {
if(identical(x, character())) {
x <- NA
}
x
}))

sub_holder <- lapply(tmp %>% html_elements("representant_voteringsresultat"), function(x){
x %>% html_elements("vara_for > id") %>% html_text()
})

tmp2$sub_for <- unlist(sapply(sub_holder, function(x) ifelse(identical(x, character()), NA, x)))
tmp2$sub_for <- unlist(sapply(sub_holder, function(x) {
if(identical(x, character())) {
x <- NA
}
x
}))

} else {
tmp2 <- data.frame(response_date = tmp %>% html_elements("voteringsresultat_oversikt > respons_dato_tid") %>% html_text(),
Expand Down
88 changes: 61 additions & 27 deletions R/get_session_cases.R
Original file line number Diff line number Diff line change
Expand Up @@ -88,21 +88,21 @@ get_session_cases <- function(sessionid = NA, good_manners = 0, cores = 1){

tmp <- read_html(base)

tmp2 <- list(root = data.frame(response_date = tmp %>% html_elements("saker_oversikt > saker_liste > sak > respons_dato_tid") %>% html_text(),
version = tmp %>% html_elements("saker_oversikt > saker_liste > sak > versjon") %>% html_text(),
tmp2 <- list(root = data.frame(response_date = tmp %>% html_elements("saker_oversikt > saker_liste > sak > respons_dato_tid") %>% html_text(),
version = tmp %>% html_elements("saker_oversikt > saker_liste > sak > versjon") %>% html_text(),
treated_session_id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > behandlet_sesjon_id") %>% html_text(),
document_group = tmp %>% html_elements("saker_oversikt > saker_liste > sak > dokumentgruppe") %>% html_text(),
reference = tmp %>% html_elements("saker_oversikt > saker_liste > sak > henvisning") %>% html_text(),
id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > id") %>% html_text(),
com_req_id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > innstilling_id") %>% html_text(),
com_req_code = tmp %>% html_elements("saker_oversikt > saker_liste > sak > innstilling_kode") %>% html_text(),
title_short = tmp %>% html_elements("saker_oversikt > saker_liste > sak > korttittel") %>% html_text(),
case_filed_id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > sak_fremmet_id") %>% html_text(),
last_update_date = tmp %>% html_elements("saker_oversikt > saker_liste > sak > sist_oppdatert_dato") %>% html_text(),
status = tmp %>% html_elements("saker_oversikt > saker_liste > sak > status") %>% html_text(),
title = tmp %>% html_elements("saker_oversikt > saker_liste > sak > tittel") %>% html_text(),
type = tmp %>% html_elements("saker_oversikt > saker_liste > sak > type") %>% html_text(),
session_id = tmp %>% html_elements("saker_oversikt > sesjon_id") %>% html_text()))
document_group = tmp %>% html_elements("saker_oversikt > saker_liste > sak > dokumentgruppe") %>% html_text(),
reference = tmp %>% html_elements("saker_oversikt > saker_liste > sak > henvisning") %>% html_text(),
id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > id") %>% html_text(),
com_req_id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > innstilling_id") %>% html_text(),
com_req_code = tmp %>% html_elements("saker_oversikt > saker_liste > sak > innstilling_kode") %>% html_text(),
title_short = tmp %>% html_elements("saker_oversikt > saker_liste > sak > korttittel") %>% html_text(),
case_filed_id = tmp %>% html_elements("saker_oversikt > saker_liste > sak > sak_fremmet_id") %>% html_text(),
last_update_date = tmp %>% html_elements("saker_oversikt > saker_liste > sak > sist_oppdatert_dato") %>% html_text(),
status = tmp %>% html_elements("saker_oversikt > saker_liste > sak > status") %>% html_text(),
title = tmp %>% html_elements("saker_oversikt > saker_liste > sak > tittel") %>% html_text(),
type = tmp %>% html_elements("saker_oversikt > saker_liste > sak > type") %>% html_text(),
session_id = tmp %>% html_elements("saker_oversikt > sesjon_id") %>% html_text()))


# Case topics
Expand All @@ -126,11 +126,21 @@ get_session_cases <- function(sessionid = NA, good_manners = 0, cores = 1){

} else {

if(identical((x %>% html_elements("representant > fylke > id") %>% html_text()), character())) {
county_id = NA
} else {
county_id <- x %>% html_elements("representant > fylke > id") %>% html_text()
}

if(identical(x %>% html_elements("representant > parti > id") %>% html_text(), character())) {
party_id <- NA
} else {
party_id <- x %>% html_elements("representant > parti > id") %>% html_text()
}

data.frame(rep_id = x %>% html_elements("representant > id") %>% html_text(),
county_id = ifelse(identical(x %>% html_elements("representant > fylke > id") %>% html_text(), character()), NA,
x %>% html_elements("representant > fylke > id") %>% html_text()),
party_id = ifelse(identical(x %>% html_elements("representant > parti > id") %>% html_text(), character()), NA,
x %>% html_elements("representant > parti > id") %>% html_text()),
county_id = county_id,
party_id = party_id,
rep_sub = x %>% html_elements("representant > vara_representant") %>% html_text())
}
}, mc.cores = cores)
Expand All @@ -142,7 +152,9 @@ get_session_cases <- function(sessionid = NA, good_manners = 0, cores = 1){

tmp3 <- x %>% html_elements("komite > id") %>% html_text()

tmp3 <- ifelse(identical(tmp3, character()), NA, tmp3)
if(identical(tmp3, character())) {
tmp3 <- NA
}

return(tmp3)

Expand All @@ -153,15 +165,37 @@ get_session_cases <- function(sessionid = NA, good_manners = 0, cores = 1){
# Case spokesperson
tmp2$spokespersons <- mclapply((tmp %>% html_elements("saker_oversikt > saker_liste > sak > saksordfoerer_liste")), function(x){

rep_id <- x %>% html_elements("representant > id") %>% html_text()
county_id <- x %>% html_elements("representant > fylke > id") %>% html_text()
party_id <- x %>% html_elements("representant > parti > id") %>% html_text()
rep_sub <- x %>% html_elements("representant > vara_representant") %>% html_text()

data.frame(rep_id = ifelse(identical(rep_id, character()), NA, rep_id),
county_id = ifelse(identical(county_id, character()), NA, county_id),
party_id = ifelse(identical(party_id, character()), NA, party_id),
rep_sub = ifelse(identical(rep_sub, character()), NA, rep_sub))
if(identical((x %>% html_elements("representant > id") %>% html_text()), character())) {
rep_id <- NA
} else {
rep_id <- x %>% html_elements("representant > id") %>% html_text()
}

if(identical((x %>% html_elements("representant > fylke > id") %>% html_text()), character())) {
county_id <- NA
} else {
county_id <- x %>% html_elements("representant > fylke > id") %>% html_text()
}

if(identical((x %>% html_elements("representant > parti > id") %>% html_text()), character())) {
party_id <- NA
} else {
party_id <- x %>% html_elements("representant > parti > id") %>% html_text()
}

if(identical((x %>% html_elements("representant > vara_representant") %>% html_text()), character())) {
rep_sub <- NA
} else {
rep_sub <- x %>% html_elements("representant > vara_representant") %>% html_text()
}



data.frame(rep_id,
county_id,
party_id,
rep_sub)

}, mc.cores = cores)

Expand Down
15 changes: 12 additions & 3 deletions R/get_session_questions.R
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,17 @@ get_session_questions <- function(sessionid = NA,

tmp2$answ_by_id <- sapply((tmp %>% html_elements("sporsmal_liste > sporsmal > besvart_av")), function(x){
tmp3 <- x %>% html_elements("id") %>% html_text()
tmp3 <- ifelse(identical(character(), tmp3), NA, tmp3)
if(identical(character(), tmp3)) {
tmp3 <- NA
}
tmp3
})

tmp2$question_to_id <- sapply((tmp %>% html_elements("sporsmal_liste > sporsmal > sporsmal_til")), function(x){
tmp3 <- x %>% html_elements("id") %>% html_text()
tmp3 <- ifelse(identical(character(), tmp3), NA, tmp3)
if(identical(character(), tmp3)) {
tmp3 <- NA
}
tmp3
})

Expand All @@ -152,8 +156,13 @@ get_session_questions <- function(sessionid = NA,
})

tmp2$correct_person <- sapply((tmp %>% html_elements("sporsmal_liste > sporsmal > rette_vedkommende")), function(x){

tmp3 <- x %>% html_elements("id") %>% html_text()
tmp3 <- ifelse(identical(character(), tmp3), NA, tmp3)

if(identical(character(), tmp3)) {
tmp3 <- NA
}

tmp3
})

Expand Down

0 comments on commit e066a16

Please sign in to comment.