阅读后.csv内容看起来真的很混乱

  • 本文关键字:看起来 真的 混乱 csv r
  • 更新时间 :
  • 英文 :


使用read.csv()后,我的文件内容看起来不是很复杂。我尝试了一些功能和步骤,但无法使其工作。以下是控制台中前几行的外观:

read.csv("TestR.csv", sep=",", header=T)

控制台输出:

FragebogenID.Datum.Uhrzeit.FragebogenNr.Standort.Befrager.Zweirad.Geschlecht.Alter.Bildung.PLZ.Ort.Land.VerweigererIn.VerweigererOut.Ausgangspunkt.Anreise.Aufenthaltsdauer.Radfahren.Wandern.Joggen.Spazierengehen.Pilze.Nationalparkveranstaltung.Tierbe ...
0001;08.06.19;11:01;1;Parkplatz Deffernik;Carina Kronschnabl;2;2;69;2;77736;Zell;Deutschland;;;3;4;5;1;4;5;3;3;2;2;;4;15:00;40;1;1;1;4;5;1;;1;;;;1;71;2;;;;;;;;;;;;;                                                                                                                                                                                                                                                                                                                                                                                                 
0002;08.06.19;11:40;2;Parkplatz Deffernik;Carina Kronschnabl;2;1;44;5;;;Deutschland;4;4;;1;4;1;2;5;3;2;5;5;5;;2;11:45;25;1;11;6;1;;;;;;;;;;;;;;;;;;;;;Radwege schlechter beschildert                                                                                                                                                                                                                                                                                                                                   kein Netz im Vergleich zum Sumava Nationalpark
0003;08.06.19;12:20;3;Parkplatz Deffernik;Carina Kronschnabl;2;1;62;6;93180;Deuerling;Deutschland;3;4;;2;1;3;1;4;1;4;4;5;5;;8;18:00;60;650;1;1;4;5;1;;1;;;;2;60;2;;;;;;;;;;;;;                                                                                                                                                                                                                                                                                                                                                                                       
0004;08.06.19;12:35;4;Parkplatz Deffernik;Carina Kronschnabl;4;2;34;7;81379;München;Deutschland;;;2;4;3;4;4;4;4;5;5;5;Schwimmen: 4;5;14:00;70;700;6;4;1;;3;;;;1;72;4;2;60;4;1;66;4;;;;;;;                                                                                                                                                                                                                                                                                                                                                                            
0005;08.06.19;13:00;5;Parkplatz Deffernik;Carina Kronschnabl;4;2;37;7;94227;Zwiesel;Deutschland;;;1;4;1;1;1;1;1;3;2;4;;3;17:00;50;1000;11;4;1;;1;;;;1;39;4;;;;;;;;;;;;;

如果我理解正确,标题行(带有列名(的字段分隔符与下面的数据行不同。

因此,我建议采用逐步方法:

  1. 读取文件的第一行并分隔列名
  2. 读取整个文件,但第一行除外,使用";"作为字段分隔符
  3. 重命名数据帧的列

这是我使用首选工具会做的事情:

library(data.table)
library(magrittr)
# read header and separate
hdr <- fread("TestR.csv", sep = "", nrows = 1L, header = FALSE)[, V1] %>% 
strsplit("\.") %>% 
unlist() %>% 
trimws()
# read data and rename columns
dat <- fread("TestR.csv", skip = 1L, header = FALSE, fill = TRUE) %>% 
setnames(seq_along(hdr), hdr)
dat
FragebogenID    Datum Uhrzeit FragebogenNr            Standort           Befrager Zweirad Geschlecht Alter Bildung   PLZ
1:            1 08.06.19   11:01            1 Parkplatz Deffernik Carina Kronschnabl       2          2    69       2 77736
2:            2 08.06.19   11:40            2 Parkplatz Deffernik Carina Kronschnabl       2          1    44       5    NA
3:            3 08.06.19   12:20            3 Parkplatz Deffernik Carina Kronschnabl       2          1    62       6 93180
4:            4 08.06.19   12:35            4 Parkplatz Deffernik Carina Kronschnabl       4          2    34       7 81379
5:            5 08.06.19   13:00            5 Parkplatz Deffernik Carina Kronschnabl       4          2    37       7 94227
Ort        Land VerweigererIn VerweigererOut Ausgangspunkt Anreise Aufenthaltsdauer Radfahren Wandern Joggen
1:      Zell Deutschland            NA             NA             3       4                5         1       4      5
2:           Deutschland             4              4            NA       1                4         1       2      5
3: Deuerling Deutschland             3              4            NA       2                1         3       1      4
4:  München Deutschland            NA             NA             2       4                3         4       4      4
5:   Zwiesel Deutschland            NA             NA             1       4                1         1       1      1
Spazierengehen Pilze Nationalparkveranstaltung Tierbe                   V28   V29  V30 V31 V32 V33 V34 V35 V36 V37 V38 V39
1:              3     3                         2      2               4 15:00    40    1   1   1   4   5   1  NA   1  NA  NA
2:              3     2                         5      5            5 NA     2 11:45   25   1  11   6   1  NA  NA  NA  NA  NA
3:              1     4                         4      5            5 NA     8 18:00   60 650   1   1   4   5   1  NA   1  NA
4:              4     5                         5      5 Schwimmen: 4  5 14:00    70  700   6   4   1  NA   3  NA  NA  NA   1
5:              1     3                         2      4               3 17:00    50 1000  11   4   1  NA   1  NA  NA  NA   1
V40 V41 V42 V43 V44 V45 V46 V47 V48 V49 V50 V51 V52 V53 V54
1:  NA   1  71   2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
2:  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
3:  NA  NA   2  60   2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
4:  72   4   2  60   4   1  66   4  NA  NA  NA  NA  NA  NA  NA
5:  39   4  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
                                                                                                                                                                                                                                                                                                                                         V55
1:                                                                                                                                                                                                                                                                                                                                                                                                                
2: Radwege schlechter beschildert                                                                                                                                                                                                                                                                                                                                   kein Netz im Vergleich zum Sumava Nationalpark
3:                                                                                                                                                                                                                                                                                                                                                                                                                
4:                                                                                                                                                                                                                                                                                                                                                                                                                
5:                                                                                                                                                                                                                                                                                                                                                                                                                
V56 V57
1:  NA  NA
2:  NA  NA
3:  NA  NA
4:  NA  NA
5:  NA  NA

微调

还有一些微调可以避免空列标题并折叠字符列内的空格:

hdr <- fread("TestR.csv", sep = "", nrows = 1L, header = FALSE)[, V1] %>% 
strsplit("\.") %>% 
unlist() %>% 
trimws() %>% 
ifelse(. == "", paste0("V", seq_along(.)), .) # avoid empty column names
# read data and rename columns
dat <- fread("TestR.csv", skip = 1L, header = FALSE, fill = TRUE) %>% 
setnames(seq_along(hdr), hdr)
# collapse white space
chr_cols <- names(dat)[sapply(dat, class) == "character"]
dat[, (chr_cols) := lapply(.SD, stringr::str_squish), .SDcols = chr_cols]
dat
FragebogenID    Datum Uhrzeit FragebogenNr            Standort           Befrager Zweirad Geschlecht Alter Bildung   PLZ
1:            1 08.06.19   11:01            1 Parkplatz Deffernik Carina Kronschnabl       2          2    69       2 77736
2:            2 08.06.19   11:40            2 Parkplatz Deffernik Carina Kronschnabl       2          1    44       5    NA
3:            3 08.06.19   12:20            3 Parkplatz Deffernik Carina Kronschnabl       2          1    62       6 93180
4:            4 08.06.19   12:35            4 Parkplatz Deffernik Carina Kronschnabl       4          2    34       7 81379
5:            5 08.06.19   13:00            5 Parkplatz Deffernik Carina Kronschnabl       4          2    37       7 94227
Ort        Land VerweigererIn VerweigererOut Ausgangspunkt Anreise Aufenthaltsdauer Radfahren Wandern Joggen
1:      Zell Deutschland            NA             NA             3       4                5         1       4      5
2:           Deutschland             4              4            NA       1                4         1       2      5
3: Deuerling Deutschland             3              4            NA       2                1         3       1      4
4:  München Deutschland            NA             NA             2       4                3         4       4      4
5:   Zwiesel Deutschland            NA             NA             1       4                1         1       1      1
Spazierengehen Pilze Nationalparkveranstaltung Tierbe          V26 V27   V28   V29  V30 V31 V32 V33 V34 V35 V36 V37 V38 V39
1:              3     3                         2      2                4 15:00    40    1   1   1   4   5   1  NA   1  NA  NA
2:              3     2                         5      5            5  NA     2 11:45   25   1  11   6   1  NA  NA  NA  NA  NA
3:              1     4                         4      5            5  NA     8 18:00   60 650   1   1   4   5   1  NA   1  NA
4:              4     5                         5      5 Schwimmen: 4   5 14:00    70  700   6   4   1  NA   3  NA  NA  NA   1
5:              1     3                         2      4                3 17:00    50 1000  11   4   1  NA   1  NA  NA  NA   1
V40 V41 V42 V43 V44 V45 V46 V47 V48 V49 V50 V51 V52 V53 V54
1:  NA   1  71   2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
2:  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
3:  NA  NA   2  60   2  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
4:  72   4   2  60   4   1  66   4  NA  NA  NA  NA  NA  NA  NA
5:  39   4  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
       V55 V56 V57
1:                                                                                NA  NA
2: Radwege schlechter beschildert kein Netz im Vergleich zum Sumava Nationalpark  NA  NA
3:                                                                                NA  NA
4:                                                                                NA  NA
5:

相关内容

最新更新