2017-01-18 8 views
1

Благодаря @hrbrmstr я получил отличное решение для проблемы «Scraping a xml document (nested url-structure)».Включите уникальные значения в новые столбцы и проверьте все остальные значения.

Но в результате из этого понимания, она возникла еще одна проблема:

Теперь я получил следующие структуры данных ...

$Vorname : chr "Jan" "Jan" "Jan" "Jan" ... 
$ Nachname : chr "Aken" "Aken" "Aken" "Aken" ... 
$ ID  : chr "1627" "1627" "1627" "1627" ... 
$ Fraktion : chr "Die Linke" "Die Linke" "Die Linke" "Die Linke" ... 
$ Reli  : chr "" "" "" "" ... 
$ Geschlecht: chr "Männlich" "Männlich" "Männlich" "Männlich" ... 
$ Auss_ord : chr "Auswärtiger Ausschuss" "Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes" "Verteidigungsausschuss" "Unterausschuss Abrüstung, Rüstungskontrolle und Nichtverbreitung" ... 

Единственная переменная, которая на самом деле является пестрым «Auss_ord» который содержит в качестве значения разную комиссию для депутатов.

Теперь я хочу, чтобы перейти от текущей длинной версии к широкой версии фрейма данных.

Для каждого уникального значения (определенная текстовая строка) в «Auss_ord» должен быть новый столбец, а также проверяется, является ли он «истинной» погодой, другой объект имеет одинаковые значения.

Так что ...

 Vorname Nachname ID Fraktion    Reli Geschlecht               Auss_ord 
    <chr>  <chr> <chr>  <chr>    <chr>  <chr>               <chr> 
1  Jan  Aken 1627 Die Linke      Männlich           Auswärtiger Ausschuss 
2  Jan  Aken 1627 Die Linke      Männlich  Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes 
3  Jan  Aken 1627 Die Linke      Männlich           Verteidigungsausschuss 
4  Jan  Aken 1627 Die Linke      Männlich Unterausschuss Abrüstung, Rüstungskontrolle und Nichtverbreitung 
5 Stephan  Albani 1769 CDU/CSU      Männlich Ausschuss für Bildung, Forschung und Technikfolgenabschätzung 
6 Stephan  Albani 1769 CDU/CSU      Männlich           Ausschuss für Gesundheit 
7 Katrin Albsteiger 1770 CDU/CSU römisch-katholisch Weiblich             Schriftführer/in 
8 Katrin Albsteiger 1770 CDU/CSU römisch-katholisch Weiblich   Ausschuss für die Angelegenheiten der Europäischen Union 

... должен быть превращен в ...

Example Dataframe (wide version)

Я пытался перекроить операции, как

d1 <- dcast(df, Vorname ~ Nachname ~ ID ~ Fraktion ~ Reli, value.var="ausord") 

или

d2 <- reshape(df, idvar = "ID", timevar = "Auss_ord", direction = "wide") 

... но я не получаю никаких должных результатов, к тому же из (для меня) очень хитрой реализации проверки уникальности значения

+1

Здесь [как сделать воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5965451#5965451), блок данных будет лучше, чем выход 'str'. –

ответ

0

Вы можете сделать:

dcast(df,Vorname+Nachname+ID+Fraktion+Reli+Geschlecht~Auss_ord,length) 

воли length позволяют в результате dataframe, чтобы быть заполнены 0/1 для столбцов, генерируемых с «Auss_ord»

0

данные воссоздают

politik <- read.table(text="Vorname Nachname ID Fraktion Reli Geschlecht Auss_ord 
     Jan  Aken 1627 'Die Linke'   NA    Männlich           'Auswärtiger Ausschuss' 
     Jan  Aken 1627 'Die Linke'  NA    Männlich  'Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes' 
     Stephan  Albani 1769 'CDU/CSU'   NA   Männlich 'Ausschuss für Bildung, Forschung und Technikfolgenabschätzung'", 
header = TRUE) 

Ответ с помощью tidyr распространять

library(dplyr) 
library(tidyr) 
politik %>% 
    mutate(present = TRUE) %>% 
    spread(Auss_ord, present) 

    Vorname Nachname ID Fraktion Reli Geschlecht 
1  Jan  Aken 1627 Die Linke NA Männlich 
2 Stephan Albani 1769 CDU/CSU NA Männlich 
    Ausschuss für Bildung, Forschung und Technikfolgenabschätzung 
1               NA 
2               TRUE 
    Auswärtiger Ausschuss 
1     TRUE 
2     NA 
    Gremium nach § 23c Absatz 8 des Zollfahndungsdienstgesetzes 
1              TRUE 
2               NA 

Имейте в виду, что имена столбцов будет очень трудно манипулировать в настоящее время. Вероятно, лучше переименовать Auss_ord с кратким сокращением до распространения.

 Смежные вопросы

  • Нет связанных вопросов^_^