0

Rのリストから英数字以外の文字を削除することについて質問があります。リストにはあらゆる種類の奇数文字、空白などがあり、それらを削除したいと思います。私は通常、rのtmパッケージを使用して必要なものを削除することができます。私はそれをいじくり回しましたが、どこにも行き着かなかったので、リストに戻ることが出発点かもしれないと思いました。

リスト:

 list("\n    \n", "\n\n  ", "\n        ", "               ", "\n    ", 
 "\n            \n      ", "\n        ", "Home", "\n", "Expertise", 
 "Question & Research Design", "\n", "Survey Development & Validation", 
 "\n", "Data Processing", "\n", "Statistical Analysis", "\n", 
 "Publications & Grants", "\n", "Evaluation", "\n", "\n", 
 "Consulting Areas", "Business", "\n", "Education", "K-12", 
 "\n", "Â ", " Â Â  Â  Â", " | ")

期待される出力

[1] ""                               ""                         ""
[4] ""                               ""                         ""
[7] ""                               "Home"                     ""
[10] "Expertise"                     "Question Research Design" ""
[13] "Survey Development Validation" ""                         "Data Processing"
[16] ""                              "Statistical Analysis"     ""
[19] "Publications Grants"           ""                         "Evaluation"
[22] ""                              ""                         "Consulting Areas"
[25] "Business"                      ""                         "Education"
[28] "K12"                           ""                         ""
[31] ""                              ""
4

2 に答える 2

5

単に使用することを強くお勧めします

gsub("[^a-zA-Z0-9]","",x)

ここで、xはリストの名前です。

おそらく、リストの最後に外国文字を含めたのは、これらも消去したいからです。上記のコマンドでこれを実現できます。簡単に説明すると、コマンドの四角い括弧は記号のコレクションを定義し、^記号は「not」を意味するため、指定された62文字のセット(小文字のaからz、大文字のAからZ、数字の0から9)は、空の文字列 ""に置き換えられます(つまり、破棄されます)。

そして、これが出力です...

 [1] ""                             ""                        ""
 [4] ""                             ""                        ""
 [7] ""                             "Home"                    ""
[10] "Expertise"                    "QuestionResearchDesign"  ""
[13] "SurveyDevelopmentValidation"  ""                        "DataProcessing"
[16] ""                             "StatisticalAnalysis"     ""
[19] "PublicationsGrants"           ""                        "Evaluation"
[22] ""                             ""                        "ConsultingAreas"
[25] "Business"                     ""                        "Education"
[28] "K12"                          ""                        ""
[31] ""                             ""
于 2012-06-21T01:50:55.537 に答える
0

これで削除したいものがすべてなくなるかどうかはわかりませんが...しかし、?regexp使用できるあらゆる種類の興味深い幅広いクラスについて説明しています。あなたが説明していることについて、私はあなたが望むと思います:

 gsub('[[:space:]|[:punct:]]+', '', yourlist)

これは次のようになります。

 [1] ""                            ""                            ""                            ""                           
 [5] ""                            ""                            ""                            "Home"                       
 [9] ""                            "Expertise"                   "QuestionResearchDesign"      ""                           
[13] "SurveyDevelopmentValidation" ""                            "DataProcessing"              ""                           
[17] "StatisticalAnalysis"         ""                            "PublicationsGrants"          ""                           
[21] "Evaluation"                  ""                            ""                            "ConsultingAreas"            
[25] "Business"                    ""                            "Education"                   "K12"                        
[29] ""                            "Â"                           "ÂÂÂÂ"                        ""     
于 2012-06-20T22:37:49.883 に答える