-1

データ フレームに plugins_Apache_module というフィールドがあり、次のような文字列が含まれています。

c("mod_perl/1.99_16,mod_python/3.1.3,mod_ssl/2.0.52",
    "mod_auth_passthrough/2.1,mod_bwlimited/1.4,mod_ssl/2.2.23",
    "mod_ssl/2.2.9")

モジュールの頻度表とそのバージョンが必要です。

Rでこれを行う最良の方法は何ですか? Rではかなり新しいので、strsplit、gsub、いくつかのチャットルームもqdapパッケージの使用を提案しているのを見てきました。

理想的には、文字列を各 mod の列を持つデータフレームに変換する必要があります。モジュールが存在する場合、バージョンはその特定のフィールドに入ります。どうすればそのような変換を達成できますか?

トップレベルの頻度が必要な場合は、どのデータフレーム形式が提案されるでしょうか。たとえば、mod_ssl (すべてのバージョン) とリレーショナル オプション (mod_perl は mod_ssl と一緒に使用されることが非常に多い) です。

処理のためにデータフレームにプッシュするときに、このような可変長データを処理する方法がよくわかりません。どんなアドバイスでも大歓迎です。

正しい答えは次のようになると思います。

mod_perl   mod_python  mod_ssl  mod_auth_passthrough mod_bwlimited 
1.99_16    3.1.3       2.0.52                      
                       2.2.23   2.1                  1.4
                       2.2.9

したがって、基本的に最初のビットが列になり、それに続くバージョンが行エントリになります

4

2 に答える 2

1
st <- c("mod_perl/1.99_16,mod_python/3.1.3,mod_ssl/2.0.52", "mod_auth_passthrough/2.1,mod_bwlimited/1.4,mod_ssl/2.2.23", "mod_ssl/2.2.9")

 scan(text=st, what="", sep=",")
Read 7 items
[1] "mod_perl/1.99_16"         "mod_python/3.1.3"         "mod_ssl/2.0.52"          
[4] "mod_auth_passthrough/2.1" "mod_bwlimited/1.4"        "mod_ssl/2.2.23"          
[7] "mod_ssl/2.2.9"

strsplit( scan(text=st, what="", sep=","), "/")
Read 7 items
[[1]]
[1] "mod_perl" "1.99_16" 

[[2]]
[1] "mod_python" "3.1.3"     

[[3]]
[1] "mod_ssl" "2.0.52" 

[[4]]
[1] "mod_auth_passthrough" "2.1"                 

[[5]]
[1] "mod_bwlimited" "1.4"          

[[6]]
[1] "mod_ssl" "2.2.23" 

[[7]]
[1] "mod_ssl" "2.2.9"  

table( sapply(strsplit( scan(text=st, what="", sep=","), "/"), "[",1)  )
#----------------
Read 7 items
mod_auth_passthrough        mod_bwlimited             mod_perl           mod_python 
                   1                    1                    1                    1 
             mod_ssl 
                   3 

 table( scan(text=st, what="", sep=",") )
#-----------
Read 7 items

mod_auth_passthrough/2.1        mod_bwlimited/1.4         mod_perl/1.99_16 
                       1                        1                        1 
        mod_python/3.1.3           mod_ssl/2.0.52           mod_ssl/2.2.23 
                       1                        1                        1 
           mod_ssl/2.2.9 
                       1 
于 2013-10-18T22:37:12.363 に答える