Объединить много кадров данных в R - PullRequest
9 голосов
/ 06 ноября 2010

У меня есть данные обо всех голосах в парламенте Дании в 2008–2009 годах. Проблема заключается в том, что каждый голос записывается в свой собственный файл .txt в следующем формате (см. Приложение к сообщению о дампе трех голосов от R):

Name             Party  Vote
Anders Samuelsen LA     For
Rasmus Prehn     S      Imod
...              ...    ...

Я хотел бы объединить все файлы в один фрейм данных в следующем формате:

Name             Party  Vote1  Vote2  Vote3
Anders Samuelsen LA     For    Imod   Imod
Rasmus Prehn     S      Imod   For    Fraværende

(перевод с датского: для = да, imod = нет, фравренде = отсутствует)

Всего у меня более 200 файлов, поэтому вопрос: как мне написать цикл, который объединяет все кадры данных в нужную структуру выше?

Приложение:

Vote1:

    structure(list(V1 = structure(c(2L, 3L, 4L, 7L, 8L, 5L, 6L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 
23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 
36L, 37L, 38L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 
50L, 51L, 52L, 53L, 39L, 54L, 55L, 56L, 60L, 61L, 62L, 63L, 64L, 
65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 57L, 58L, 59L, 
75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 
88L, 89L, 90L, 91L, 92L, 93L, 94L, 96L, 97L, 98L, 95L, 99L, 100L, 
101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 
112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L, 
123L, 125L, 126L, 127L, 124L, 128L, 129L, 130L, 131L, 132L, 133L, 
134L, 135L, 136L, 137L, 139L, 140L, 141L, 138L, 142L, 143L, 144L, 
145L, 146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L, 154L, 155L, 
160L, 161L, 162L, 163L, 164L, 156L, 157L, 158L, 159L, 165L, 166L, 
167L, 168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 176L, 177L, 
178L, 179L, 1L), .Label = c("Özlem Sara Cekic", "Anders Samuelsen", 
"Anita Christensen", "Anita Knakkergaard", "Anne-Marie Meldgaard", 
"Anne-Mette Winther Christians", "Anne Baastrup", "Anne Grete Holmsgaard", 
"Annette Lilja Vilhelmsen", "Benny Engelbrecht", "Bent Bøgsted", 
"Bente Dahl", "Bertel Haarder", "Birgitte Josefsen", "Birthe Rønn Hornbech", 
"Bjarne Laustsen", "Brian Mikkelsen", "Britta Schall Holberg", 
"Carina Christensen", "Carsten Hansen", "Charlotte Dyremose", 
"Christine Antorini", "Claus Hjort Frederiksen", "Colette L. Brix", 
"Connie Hedegaard", "Dennis Flydtkjær", "Edmund Joensen", "Eigil Andersen", 
"Ellen Trane Nørby", "Erling Bonnesen", "Eva Kjer Hansen", "Eyvind Vesselbo", 
"Flemming Bonne", "Flemming Damgaard Larsen", "Flemming Møller", 
"Flemming Møller Mortensen", "Frank Aaen", "Gitte Lillelund Bech", 
"Høgni Hoydal", "Hanne Agersnap", "Hans Christian Schmidt", 
"Hans Christian Thoning", "Hans Kristian Skibby", "Helge Adam Møller", 
"Helge Sander", "Helle Sjelle", "Helle Thorning-Schmidt", "Henriette Kjær", 
"Henrik Brodersen", "Henrik Dam Kristensen", "Henrik Høegh", 
"Henrik Sass Larsen", "Holger K. Nielsen", "Ib Poulsen", "Ida Auken", 
"Inger Støjberg", "Jørgen Poulsen", "Jørgen S. Lundsgaard", 
"Jørn Dohrmann", "Jacob Jensen", "Jakob Axel Nielsen", "Jens Christian Lund", 
"Jens Kirk", "Jens Peter Vernersen", "Jens Vibjerg", "Jeppe Kofod", 
"Jesper Langballe", "Jesper Petersen", "Johanne Schmidt-Nielsen", 
"John Dyrby Paulsen", "Johs. Poulsen", "Jonas Dahl", "Juliane Henningsen", 
"Julie Rademacher", "Kamal Qureshi", "Karen Ellemann", "Karen Hækkerup", 
"Karen J. Klint", "Karen Jespersen", "Karin Nødgaard", "Karina Lorentzen Dehnhardt", 
"Karl H. Bornhøft", "Karsten Lauritzen", "Karsten Nonbo", "Kim Andersen", 
"Kim Christiansen", "Kim Mortensen", "Kirsten Brosbøl", "Klaus Hækkerup", 
"Knud Kristensen", "Kristen Touborg", "Kristian Jensen", "Kristian Pihl Lorentzen", 
"Kristian Thulesen Dahl", "Lars-Emil Johansen", "Lars Barfoed", 
"Lars Christian Lilleholt", "Lars Løkke Rasmussen", "Leif Lahn Jensen", 
"Lene Espersen", "Lene Hansen", "Lennart Damsbo-Andersen", "Line Barfod", 
"Lise von Seelen", "Liselott Blixt", "Lone Dybkjær", "Lone Møller", 
"Louise Schack Elholm", "Magnus Heunicke", "Malou Aamund", "Margrethe Vestager", 
"Marianne Jelved", "Marion Pedersen", "Marlene Harpsøe", "Martin Henriksen", 
"Meta Fuglsang", "Mette Frederiksen", "Mette Gjerskov", "Michael Aastrup Jensen", 
"Mike Legarth", "Mikkel Dencker", "Mogens Jensen", "Mogens Lykketoft", 
"Morten Østergaard", "Morten Bødskov", "Morten Helveg Petersen", 
"Morten Messerschmidt", "Nanna Westerby", "Naser Khader", "Nick Hækkerup", 
"Niels Christian Nielsen", "Niels Helveg Petersen", "Niels Sindal", 
"Ole Hækkerup", "Ole Sohn", "Ole Vagn Christensen", "Orla Hav", 
"Per Ørum Jørgensen", "Per Bisgaard", "Per Clausen", "Per Stig Møller", 
"Pernille Frahm", "Pernille Vigsø Bagge", "Peter Christensen", 
"Peter Juel Jensen", "Peter Skaarup", "Pia Adelsteen", "Pia Christmas-Møller", 
"Pia Kjærsgaard", "Pia Olsen Dyhr", "Poul Andersen", "Preben Rudiengaard", 
"Rasmus Prehn", "René Christensen", "René Skau Björnsson", 
"Søren Espersen", "Søren Gade", "Søren Krarup", "Søren Pind", 
"Simon Emil Ammitzbøll", "Sophie Hæstorp Andersen", "Sophie Løhde", 
"Steen Gade", "Svend Auken", "Thomas Adelskov", "Thomas Jensen", 
"Thor Pedersen", "Tina Nedergaard", "Tina Petersen", "Tom Behnke", 
"Torben Hansen", "Torsten Schack Pedersen", "Troels Christensen", 
"Troels Lund Poulsen", "Ulla Tørnæs", "Villum Christensen", 
"Villy Søvndal", "Vivi Kier", "Yildiz Akdogan"), class = "factor"), 
    V2 = structure(c(5L, 1L, 1L, 8L, 8L, 7L, 13L, 8L, 7L, 1L, 
    6L, 13L, 13L, 13L, 7L, 4L, 13L, 4L, 7L, 4L, 7L, 13L, 1L, 
    4L, 1L, 10L, 8L, 13L, 13L, 13L, 13L, 8L, 13L, 13L, 7L, 2L, 
    13L, 8L, 13L, 13L, 1L, 4L, 13L, 4L, 7L, 4L, 1L, 7L, 13L, 
    7L, 8L, 11L, 1L, 8L, 13L, 13L, 4L, 7L, 13L, 7L, 13L, 7L, 
    1L, 8L, 2L, 7L, 6L, 8L, 3L, 7L, 6L, 4L, 1L, 8L, 13L, 7L, 
    7L, 13L, 1L, 8L, 8L, 13L, 13L, 13L, 1L, 7L, 7L, 7L, 4L, 8L, 
    13L, 13L, 1L, 4L, 13L, 13L, 9L, 7L, 4L, 7L, 7L, 2L, 7L, 1L, 
    6L, 7L, 13L, 7L, 13L, 6L, 6L, 13L, 1L, 1L, 8L, 7L, 7L, 13L, 
    4L, 1L, 7L, 7L, 7L, 6L, 1L, 6L, 8L, 4L, 7L, 7L, 6L, 7L, 7L, 
    8L, 7L, 7L, 13L, 2L, 4L, 4L, 8L, 8L, 13L, 13L, 1L, 1L, 12L, 
    1L, 8L, 7L, 13L, 7L, 1L, 7L, 12L, 7L, 13L, 8L, 7L, 1L, 13L, 
    1L, 13L, 7L, 7L, 13L, 13L, 1L, 4L, 7L, 13L, 13L, 13L, 13L, 
    5L, 8L, 4L, 7L, 8L), .Label = c("DF", "EL", "IA", "KF", "LA", 
    "RV", "S", "SF", "SIU", "SP", "TF", "UFG", "V"), class = "factor"), 
    V3 = structure(c(1L, 1L, 1L, 3L, 3L, 2L, 1L, 3L, 3L, 1L, 
    3L, 1L, 1L, 2L, 3L, 1L, 1L, 2L, 2L, 1L, 3L, 2L, 2L, 2L, 1L, 
    2L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 
    1L, 1L, 2L, 2L, 2L, 1L, 1L, 3L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 
    1L, 1L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 3L, 2L, 3L, 
    2L, 1L, 2L, 2L, 2L, 3L, 2L, 1L, 1L, 3L, 3L, 2L, 1L, 1L, 2L, 
    3L, 2L, 3L, 2L, 3L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 3L, 2L, 3L, 
    3L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 2L, 2L, 3L, 1L, 1L, 1L, 3L, 
    3L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 2L, 2L, 3L, 1L, 3L, 3L, 
    3L, 3L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 1L, 2L, 
    1L, 2L, 2L, 2L, 3L, 1L, 3L, 1L, 2L, 1L, 3L, 1L, 2L, 2L, 2L, 
    2L, 1L, 1L, 2L, 3L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 
    2L, 1L, 3L, 2L), .Label = c("For", "Fraværende", "Imod"), class = "factor")), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -179L))

Vote2:

structure(list(V1 = structure(c(2L, 3L, 4L, 7L, 8L, 5L, 6L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 
23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 
36L, 37L, 38L, 39L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 
50L, 51L, 52L, 53L, 54L, 40L, 55L, 56L, 59L, 60L, 61L, 62L, 63L, 
64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 57L, 58L, 74L, 
75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 
88L, 89L, 90L, 91L, 92L, 93L, 95L, 96L, 97L, 94L, 98L, 99L, 100L, 
101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 
112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L, 
124L, 125L, 126L, 123L, 127L, 128L, 129L, 130L, 131L, 132L, 133L, 
134L, 135L, 137L, 138L, 139L, 140L, 136L, 141L, 142L, 143L, 144L, 
145L, 146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L, 154L, 159L, 
160L, 161L, 162L, 163L, 155L, 156L, 157L, 158L, 164L, 165L, 166L, 
167L, 168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 176L, 177L, 
178L, 179L, 1L), .Label = c("Özlem Sara Cekic", "Anders Samuelsen", 
"Anita Christensen", "Anita Knakkergaard", "Anne-Marie Meldgaard", 
"Anne-Mette Winther Christians", "Anne Baastrup", "Anne Grete Holmsgaard", 
"Annette Lilja Vilhelmsen", "Bendt Bendtsen", "Benny Engelbrecht", 
"Bent Bøgsted", "Bente Dahl", "Bertel Haarder", "Birgitte Josefsen", 
"Birthe Rønn Hornbech", "Bjarne Laustsen", "Brian Mikkelsen", 
"Britta Schall Holberg", "Carina Christensen", "Carsten Hansen", 
"Charlotte Dyremose", "Christine Antorini", "Claus Hjort Frederiksen", 
"Colette L. Brix", "Connie Hedegaard", "Dennis Flydtkjær", "Edmund Joensen", 
"Eigil Andersen", "Ellen Trane Nørby", "Erling Bonnesen", "Eva Kjer Hansen", 
"Eyvind Vesselbo", "Flemming Bonne", "Flemming Damgaard Larsen", 
"Flemming Møller", "Flemming Møller Mortensen", "Frank Aaen", 
"Gitte Lillelund Bech", "Høgni Hoydal", "Hanne Agersnap", "Hans Christian Schmidt", 
"Hans Christian Thoning", "Hans Kristian Skibby", "Helge Adam Møller", 
"Helge Sander", "Helle Sjelle", "Helle Thorning-Schmidt", "Henriette Kjær", 
"Henrik Brodersen", "Henrik Dam Kristensen", "Henrik Høegh", 
"Henrik Sass Larsen", "Holger K. Nielsen", "Ib Poulsen", "Inger Støjberg", 
"Jørgen Poulsen", "Jørn Dohrmann", "Jacob Jensen", "Jakob Axel Nielsen", 
"Jens Christian Lund", "Jens Kirk", "Jens Peter Vernersen", "Jens Vibjerg", 
"Jeppe Kofod", "Jesper Langballe", "Jesper Petersen", "Johanne Schmidt-Nielsen", 
"John Dyrby Paulsen", "Johs. Poulsen", "Jonas Dahl", "Juliane Henningsen", 
"Julie Rademacher", "Kamal Qureshi", "Karen Ellemann", "Karen Hækkerup", 
"Karen J. Klint", "Karen Jespersen", "Karin Nødgaard", "Karina Lorentzen Dehnhardt", 
"Karl H. Bornhøft", "Karsten Lauritzen", "Karsten Nonbo", "Kim Andersen", 
"Kim Christiansen", "Kim Mortensen", "Kirsten Brosbøl", "Klaus Hækkerup", 
"Knud Kristensen", "Kristen Touborg", "Kristian Jensen", "Kristian Pihl Lorentzen", 
"Kristian Thulesen Dahl", "Lars-Emil Johansen", "Lars Barfoed", 
"Lars Christian Lilleholt", "Lars Løkke Rasmussen", "Leif Lahn Jensen", 
"Lene Espersen", "Lene Hansen", "Lennart Damsbo-Andersen", "Line Barfod", 
"Lise von Seelen", "Liselott Blixt", "Lone Dybkjær", "Lone Møller", 
"Louise Schack Elholm", "Magnus Heunicke", "Malou Aamund", "Margrethe Vestager", 
"Marianne Jelved", "Marion Pedersen", "Marlene Harpsøe", "Martin Henriksen", 
"Meta Fuglsang", "Mette Frederiksen", "Mette Gjerskov", "Michael Aastrup Jensen", 
"Mike Legarth", "Mikkel Dencker", "Mogens Jensen", "Mogens Lykketoft", 
"Morten Østergaard", "Morten Bødskov", "Morten Helveg Petersen", 
"Morten Messerschmidt", "Nanna Westerby", "Naser Khader", "Nick Hækkerup", 
"Niels Christian Nielsen", "Niels Helveg Petersen", "Niels Sindal", 
"Ole Hækkerup", "Ole Sohn", "Ole Vagn Christensen", "Per Ørum Jørgensen", 
"Per Bisgaard", "Per Clausen", "Per Husted", "Per Stig Møller", 
"Pernille Frahm", "Pernille Vigsø Bagge", "Peter Christensen", 
"Peter Juel Jensen", "Peter Skaarup", "Pia Adelsteen", "Pia Christmas-Møller", 
"Pia Kjærsgaard", "Pia Olsen Dyhr", "Poul Andersen", "Preben Rudiengaard", 
"Rasmus Prehn", "René Christensen", "René Skau Björnsson", 
"Søren Espersen", "Søren Gade", "Søren Krarup", "Søren Pind", 
"Simon Emil Ammitzbøll", "Sophie Hæstorp Andersen", "Sophie Løhde", 
"Steen Gade", "Svend Auken", "Thomas Adelskov", "Thomas Jensen", 
"Thor Pedersen", "Tina Nedergaard", "Tina Petersen", "Tom Behnke", 
"Torben Hansen", "Torsten Schack Pedersen", "Trine Mach", "Troels Christensen", 
"Troels Lund Poulsen", "Ulla Tørnæs", "Villum Christensen", 
"Villy Søvndal", "Vivi Kier", "Yildiz Akdogan"), class = "factor"), 
    V2 = structure(c(5L, 1L, 1L, 8L, 8L, 7L, 13L, 8L, 4L, 7L, 
    1L, 6L, 13L, 13L, 13L, 7L, 4L, 13L, 4L, 7L, 4L, 7L, 13L, 
    1L, 4L, 1L, 10L, 8L, 13L, 13L, 13L, 13L, 8L, 13L, 13L, 7L, 
    2L, 13L, 8L, 13L, 13L, 1L, 4L, 13L, 4L, 7L, 4L, 1L, 7L, 13L, 
    7L, 8L, 11L, 1L, 13L, 13L, 4L, 7L, 13L, 7L, 13L, 7L, 1L, 
    8L, 2L, 7L, 6L, 8L, 3L, 7L, 6L, 1L, 8L, 13L, 7L, 7L, 13L, 
    1L, 8L, 8L, 13L, 13L, 13L, 1L, 7L, 7L, 7L, 4L, 8L, 13L, 13L, 
    1L, 4L, 13L, 13L, 9L, 7L, 4L, 7L, 7L, 2L, 7L, 1L, 6L, 7L, 
    13L, 7L, 13L, 6L, 6L, 13L, 1L, 1L, 8L, 7L, 7L, 13L, 4L, 1L, 
    7L, 7L, 7L, 6L, 1L, 6L, 8L, 4L, 7L, 7L, 6L, 7L, 7L, 8L, 7L, 
    13L, 2L, 7L, 4L, 4L, 8L, 8L, 13L, 13L, 1L, 1L, 12L, 1L, 8L, 
    7L, 13L, 7L, 1L, 7L, 12L, 7L, 13L, 8L, 7L, 1L, 13L, 1L, 13L, 
    7L, 7L, 13L, 13L, 1L, 4L, 7L, 13L, 8L, 13L, 13L, 13L, 5L, 
    8L, 4L, 7L, 8L), .Label = c("DF", "EL", "IA", "KF", "LA", 
    "RV", "S", "SF", "SIU", "SP", "TF", "UFG", "V"), class = "factor"), 
    V3 = structure(c(3L, 1L, 1L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 
    1L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 
    1L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 
    3L, 1L, 3L, 3L, 3L, 2L, 2L, 1L, 2L, 3L, 2L, 3L, 2L, 1L, 2L, 
    3L, 3L, 3L, 3L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 
    2L, 1L, 3L, 2L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 2L, 3L, 1L, 2L, 
    3L, 3L, 2L, 2L, 3L, 3L, 1L, 3L, 3L, 2L, 2L, 3L, 2L, 3L, 2L, 
    2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 1L, 1L, 3L, 2L, 
    2L, 2L, 3L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 2L, 3L, 
    2L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 1L, 
    2L, 2L, 3L, 2L, 3L, 3L, 1L, 2L, 3L, 3L, 3L, 3L, 3L, 1L, 2L, 
    1L, 2L, 3L, 3L, 3L, 2L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 
    2L, 3L, 3L, 2L), .Label = c("For", "Fraværende", "Imod"), class = "factor")), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -179L))

Vote3:

structure(list(V1 = structure(c(2L, 3L, 4L, 7L, 8L, 5L, 6L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 
23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 
36L, 37L, 38L, 39L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 
50L, 51L, 52L, 53L, 54L, 40L, 55L, 56L, 59L, 60L, 61L, 62L, 63L, 
64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 57L, 58L, 74L, 
75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 
88L, 89L, 90L, 91L, 92L, 93L, 95L, 96L, 97L, 94L, 98L, 99L, 100L, 
101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 
112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L, 
124L, 125L, 126L, 123L, 127L, 128L, 129L, 130L, 131L, 132L, 133L, 
134L, 135L, 137L, 138L, 139L, 140L, 136L, 141L, 142L, 143L, 144L, 
145L, 146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L, 154L, 159L, 
160L, 161L, 162L, 163L, 155L, 156L, 157L, 158L, 164L, 165L, 166L, 
167L, 168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 176L, 177L, 
178L, 179L, 1L), .Label = c("Özlem Sara Cekic", "Anders Samuelsen", 
"Anita Christensen", "Anita Knakkergaard", "Anne-Marie Meldgaard", 
"Anne-Mette Winther Christians", "Anne Baastrup", "Anne Grete Holmsgaard", 
"Annette Lilja Vilhelmsen", "Bendt Bendtsen", "Benny Engelbrecht", 
"Bent Bøgsted", "Bente Dahl", "Bertel Haarder", "Birgitte Josefsen", 
"Birthe Rønn Hornbech", "Bjarne Laustsen", "Brian Mikkelsen", 
"Britta Schall Holberg", "Carina Christensen", "Carsten Hansen", 
"Charlotte Dyremose", "Christine Antorini", "Claus Hjort Frederiksen", 
"Colette L. Brix", "Connie Hedegaard", "Dennis Flydtkjær", "Edmund Joensen", 
"Eigil Andersen", "Ellen Trane Nørby", "Erling Bonnesen", "Eva Kjer Hansen", 
"Eyvind Vesselbo", "Flemming Bonne", "Flemming Damgaard Larsen", 
"Flemming Møller", "Flemming Møller Mortensen", "Frank Aaen", 
"Gitte Lillelund Bech", "Høgni Hoydal", "Hanne Agersnap", "Hans Christian Schmidt", 
"Hans Christian Thoning", "Hans Kristian Skibby", "Helge Adam Møller", 
"Helge Sander", "Helle Sjelle", "Helle Thorning-Schmidt", "Henriette Kjær", 
"Henrik Brodersen", "Henrik Dam Kristensen", "Henrik Høegh", 
"Henrik Sass Larsen", "Holger K. Nielsen", "Ib Poulsen", "Inger Støjberg", 
"Jørgen Poulsen", "Jørn Dohrmann", "Jacob Jensen", "Jakob Axel Nielsen", 
"Jens Christian Lund", "Jens Kirk", "Jens Peter Vernersen", "Jens Vibjerg", 
"Jeppe Kofod", "Jesper Langballe", "Jesper Petersen", "Johanne Schmidt-Nielsen", 
"John Dyrby Paulsen", "Johs. Poulsen", "Jonas Dahl", "Juliane Henningsen", 
"Julie Rademacher", "Kamal Qureshi", "Karen Ellemann", "Karen Hækkerup", 
"Karen J. Klint", "Karen Jespersen", "Karin Nødgaard", "Karina Lorentzen Dehnhardt", 
"Karl H. Bornhøft", "Karsten Lauritzen", "Karsten Nonbo", "Kim Andersen", 
"Kim Christiansen", "Kim Mortensen", "Kirsten Brosbøl", "Klaus Hækkerup", 
"Knud Kristensen", "Kristen Touborg", "Kristian Jensen", "Kristian Pihl Lorentzen", 
"Kristian Thulesen Dahl", "Lars-Emil Johansen", "Lars Barfoed", 
"Lars Christian Lilleholt", "Lars Løkke Rasmussen", "Leif Lahn Jensen", 
"Lene Espersen", "Lene Hansen", "Lennart Damsbo-Andersen", "Line Barfod", 
"Lise von Seelen", "Liselott Blixt", "Lone Dybkjær", "Lone Møller", 
"Louise Schack Elholm", "Magnus Heunicke", "Malou Aamund", "Margrethe Vestager", 
"Marianne Jelved", "Marion Pedersen", "Marlene Harpsøe", "Martin Henriksen", 
"Meta Fuglsang", "Mette Frederiksen", "Mette Gjerskov", "Michael Aastrup Jensen", 
"Mike Legarth", "Mikkel Dencker", "Mogens Jensen", "Mogens Lykketoft", 
"Morten Østergaard", "Morten Bødskov", "Morten Helveg Petersen", 
"Morten Messerschmidt", "Nanna Westerby", "Naser Khader", "Nick Hækkerup", 
"Niels Christian Nielsen", "Niels Helveg Petersen", "Niels Sindal", 
"Ole Hækkerup", "Ole Sohn", "Ole Vagn Christensen", "Per Ørum Jørgensen", 
"Per Bisgaard", "Per Clausen", "Per Husted", "Per Stig Møller", 
"Pernille Frahm", "Pernille Vigsø Bagge", "Peter Christensen", 
"Peter Juel Jensen", "Peter Skaarup", "Pia Adelsteen", "Pia Christmas-Møller", 
"Pia Kjærsgaard", "Pia Olsen Dyhr", "Poul Andersen", "Preben Rudiengaard", 
"Rasmus Prehn", "René Christensen", "René Skau Björnsson", 
"Søren Espersen", "Søren Gade", "Søren Krarup", "Søren Pind", 
"Simon Emil Ammitzbøll", "Sophie Hæstorp Andersen", "Sophie Løhde", 
"Steen Gade", "Svend Auken", "Thomas Adelskov", "Thomas Jensen", 
"Thor Pedersen", "Tina Nedergaard", "Tina Petersen", "Tom Behnke", 
"Torben Hansen", "Torsten Schack Pedersen", "Trine Mach", "Troels Christensen", 
"Troels Lund Poulsen", "Ulla Tørnæs", "Villum Christensen", 
"Villy Søvndal", "Vivi Kier", "Yildiz Akdogan"), class = "factor"), 
    V2 = structure(c(5L, 1L, 1L, 8L, 8L, 7L, 13L, 8L, 4L, 7L, 
    1L, 6L, 13L, 13L, 13L, 7L, 4L, 13L, 4L, 7L, 4L, 7L, 13L, 
    1L, 4L, 1L, 10L, 8L, 13L, 13L, 13L, 13L, 8L, 13L, 13L, 7L, 
    2L, 13L, 8L, 13L, 13L, 1L, 4L, 13L, 4L, 7L, 4L, 1L, 7L, 13L, 
    7L, 8L, 11L, 1L, 13L, 13L, 4L, 7L, 13L, 7L, 13L, 7L, 1L, 
    8L, 2L, 7L, 6L, 8L, 3L, 7L, 6L, 1L, 8L, 13L, 7L, 7L, 13L, 
    1L, 8L, 8L, 13L, 13L, 13L, 1L, 7L, 7L, 7L, 4L, 8L, 13L, 13L, 
    1L, 4L, 13L, 13L, 9L, 7L, 4L, 7L, 7L, 2L, 7L, 1L, 6L, 7L, 
    13L, 7L, 13L, 6L, 6L, 13L, 1L, 1L, 8L, 7L, 7L, 13L, 4L, 1L, 
    7L, 7L, 7L, 6L, 1L, 6L, 8L, 4L, 7L, 7L, 6L, 7L, 7L, 8L, 7L, 
    13L, 2L, 7L, 4L, 4L, 8L, 8L, 13L, 13L, 1L, 1L, 12L, 1L, 8L, 
    7L, 13L, 7L, 1L, 7L, 12L, 7L, 13L, 8L, 7L, 1L, 13L, 1L, 13L, 
    7L, 7L, 13L, 13L, 1L, 4L, 7L, 13L, 8L, 13L, 13L, 13L, 5L, 
    8L, 4L, 7L, 8L), .Label = c("DF", "EL", "IA", "KF", "LA", 
    "RV", "S", "SF", "SIU", "SP", "TF", "UFG", "V"), class = "factor"), 
    V3 = structure(c(3L, 3L, 3L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 
    3L, 2L, 3L, 3L, 2L, 1L, 3L, 3L, 3L, 2L, 2L, 1L, 2L, 2L, 2L, 
    3L, 2L, 3L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 1L, 3L, 3L, 2L, 2L, 
    3L, 3L, 3L, 3L, 3L, 2L, 2L, 3L, 2L, 3L, 2L, 3L, 2L, 3L, 2L, 
    3L, 2L, 1L, 3L, 1L, 2L, 1L, 3L, 3L, 2L, 2L, 2L, 3L, 2L, 1L, 
    2L, 3L, 3L, 2L, 1L, 2L, 3L, 2L, 1L, 2L, 3L, 2L, 3L, 3L, 2L, 
    1L, 1L, 2L, 2L, 3L, 3L, 2L, 3L, 3L, 2L, 2L, 1L, 2L, 1L, 2L, 
    2L, 2L, 2L, 2L, 1L, 3L, 1L, 3L, 1L, 2L, 2L, 3L, 3L, 3L, 2L, 
    1L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 3L, 3L, 1L, 2L, 1L, 
    2L, 1L, 2L, 2L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 
    2L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 1L, 3L, 3L, 2L, 2L, 2L, 
    3L, 2L, 1L, 1L, 3L, 2L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 
    2L, 3L, 1L, 2L), .Label = c("For", "Fraværende", "Imod"), class = "factor")), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -179L))

Ответы [ 4 ]

10 голосов
/ 07 ноября 2010

здесь немного другой подход, использующий пакеты plyr и reshape от hadley.

library(plyr);
library(reshape);

# function to read a single file

readFile = function(i){

    .file = paste("Vote", i, ".csv", sep = "");
    .vote = read.csv(.file);
     names(.vote) = c('name', 'party', 'vote');
    .vote$id = paste("Vote", i, sep = "");
     return(.vote);
}

nFiles = 200;

# read all data files and store as data frame
vote = ldply(1:nFiles, readFile);

# reshape data to get to the required format
vote2 = cast(vote, name + party ~ id, value = 'vote')
5 голосов
/ 07 ноября 2010

Это то, как я обрабатываю несколько импортов. Я надеюсь, что мой пример соответствует вашим потребностям. Что вы делаете, вы читаете все имена файлов в каталоге, импортируете каждый файл как элемент списка и rbind весь список в один data.frame. Я предполагаю, что ваши файлы начинаются с voting_results_*.

# Create a list of files
import.files <- as.list(grep("voting_results_", list.files(), value = TRUE))

importResults <- function(x) {
    read.table(x, header = TRUE) # customize this to meet your needs
}

# Using lapply on each list element, import all files into one list.
voting.results <- lapply(import.files, FUN = importResults)

# R bind all list elements into one big data.frame.
voting.results <- do.call("rbind", voting.results)

# Dance.
3 голосов
/ 08 ноября 2010

Если вы предполагаете, что партия всегда одна и та же, просто объедините (дважды) по Именам (== "V1" в ваших структурах):

mergevotes <- merge(merge(Vote1, Vote2[, c(1,3)], by="V1"), Vote3[, c(1,3)], by="V1")
 names(mergevotes) <- c("Name", "Party",  "Vote1",  "Vote2",  "Vote3")

(ул mergevotes) data.frame ': 176 обс. из 5 переменных:
$ Название: фактор с 179 уровнями "z – zlem Sara Cekic", ..: 1 2 3 4 7 8 5 6 9 10 ...
$ Сторона: фактор с 13 уровнями "DF", "EL", "IA", ..: 8 5 1 1 8 8 7 13 8 7 ...
$ Голосование1: Коэффициент с 3 уровнями "За", "Фраверенде", ..: 2 1 1 1 3 3 2 1 3 3 ...
$ Vote2: фактор с 3 уровнями "For", "Fravörende", ..: 2 3 1 1 3 2 2 2 2 3 ...
$ Голосование 3: Коэффициент с 3 уровнями "За", "Фраверенде", ..: 2 3 3 3 2 2 1 2 2 1 ...
руководитель (mergevotes)

                   Name Party       Vote1       Vote2       Vote3  
1     Özlem Sara Cekic    SF Fraværende Fraværende Fraværende
2      Anders Samuelsen    LA         For        Imod        Imod
3     Anita Christensen    DF         For         For        Imod
4    Anita Knakkergaard    DF         For         For        Imod
5         Anne Baastrup    SF        Imod        Imod Fraværende
6 Anne Grete Holmsgaard    SF        Imod Fraværende Fraværende

Я бы хотел, чтобы интерфейс SO облегчал указание непропорциональных шрифтов, таких как Courier. Кажется, что есть интервал, который предлагает R для выравнивания табличного вывода при вставке в текстовые разделы.

3 голосов
/ 07 ноября 2010

Настройте read.csv для любого типа файла, который вы используете. В этом примере предполагается, что номенклатура файлов следующая:

Vote1.csv

n <- 200 ## Number of votes
df <- read.csv(file=paste("Vote1.csv",sep=""))
df.tmp <- data.frame() ## initialize

for (x in 2:n) { 
df.tmp <- read.csv(file=paste("Vote",n,".csv",sep=""))
df <- merge(df,df.tmp[c(1,3)], by="V1")
} 

colnames(df)[3:n] <- paste("Vote",1:n,sep="")
colnames(df)[1:2] <- c("Name","Party")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...