2016-10-18 6 views

答えて

2

結果は次の2つのテーブルのリストを与えているので、あなたは、あなたがdata.framesのリストを持っているlapply

table <- lapply(table, function(x){ 
    x[x == ""] <- NA 
    return(x) 
}) 


table$team_stats 
Player PF Yds Ply Y/P TO FL 1stD Cmp Att Yds TD Int NY/A 1stD Att Yds TD Y/A 1stD Pen Yds 1stPy 
1  Team Stats 442 6268 1021 6.1 25 14 350 339 483 4302 35 11 8.1 209 493 1966 14 4.0 124 109 922 17 
2  Opp. Stats 253 4618 979 4.7 37 16 283 316 564 3235 15 21 5.3 178 372 1383 9 3.7 76 75 581 29 
3 Lg Rank Offense 1 1 <NA> <NA> 2 10 1 <NA> 20 2 1 1 1 <NA> 13 10 12 13 <NA> <NA> <NA> <NA> 
4 Lg Rank Defense 3 4 <NA> <NA> 11 9 9 <NA> 25 11 3 9 5 <NA> 1 3 3 8 <NA> <NA> <NA> <NA> 
+0

はそれをプラグインし、それが魅力のように働きました、とても有難い。 lapplyが何をしているかを読み上げる時間! – chaseking123

+0

'lapply'は、' for 'ループの代わりにRで典型的に使用される一連のデータに関数を適用する '* apply'グループの関数の1つです。この場合、 'lapply'は関数を' list'(つまり 'l')に適用します:) – SymbolixAU

2

を使用して行うことができ、各リスト要素、上で作業する必要があります実際のデータはほとんどが数値ですが、 type.convertで適切な型に変換すると、自動的に適切なNA Sを挿入します:

df_list <- lapply(table, function(x){ 
    x[] <- lapply(x, function(y){type.convert(as.character(y), as.is = TRUE)}); 
    x 
}) 

df_list[[1]][, 1:18] 
##   Player PF Yds Ply Y/P TO FL 1stD Cmp Att Yds.1 TD Int NY/A 1stD.1 Att.1 Yds.2 TD.1 
## 1  Team Stats 442 6268 1021 6.1 25 14 350 339 483 4302 35 11 8.1 209 493 1966 14 
## 2  Opp. Stats 253 4618 979 4.7 37 16 283 316 564 3235 15 21 5.3 178 372 1383 9 
## 3 Lg Rank Offense 1 1 NA NA 2 10 1 NA 20  2 1 1 1.0  NA 13 10 12 
## 4 Lg Rank Defense 3 4 NA NA 11 9 9 NA 25 11 3 9 5.0  NA  1  3 3 

以上簡潔しかし、多くのパッケージと、

library(tidyverse) # for purrr functions and readr::type_convert 
library(janitor)  # for clean_names 

df_list <- map(table, ~.x %>% clean_names() %>% dmap(as.character) %>% type_convert()) 

df_list[[1]] 
## # A tibble: 4 × 23 
##   player pf yds ply y_p to fl x1std cmp att yds_2 td int ny_a 
##    <chr> <int> <int> <int> <dbl> <int> <int> <int> <int> <int> <int> <int> <int> <dbl> 
## 1  Team Stats 442 6268 1021 6.1 25 14 350 339 483 4302 35 11 8.1 
## 2  Opp. Stats 253 4618 979 4.7 37 16 283 316 564 3235 15 21 5.3 
## 3 Lg Rank Offense  1  1 NA NA  2 10  1 NA 20  2  1  1 1.0 
## 4 Lg Rank Defense  3  4 NA NA 11  9  9 NA 25 11  3  9 5.0 
## # ... with 9 more variables: x1std_2 <int>, att_2 <int>, yds_3 <int>, td_2 <int>, y_a <dbl>, 
## # x1std_3 <int>, pen <int>, yds_4 <int>, x1stpy <int> 
関連する問題