2017-06-10 5 views
1

私は基本的なフォーメーションルールを実装したいデータフレームを持っています。データフレームフレームのすべての列に対する単純なテキストクリーニング

df <- structure(list(colname1 = structure(c(2L, 1L, 1L), .Label = c("", 
"TEXTA"), class = "factor"), colname2 = structure(c(2L, 1L, 3L 
), .Label = c("TEXTA", "TEXTB", "TEXTE"), class = "factor"), 
    colname3 = structure(c(2L, 3L, 1L), .Label = c("", "TEXTC", 
    "TEXTD"), class = "factor")), .Names = c("colname1", "colname2", 
"colname3"), class = "data.frame", row.names = c(NA, -3L)) 

は、私は、全体のデータフレームのデータについては、以下を実行してみてください:

データフレームがある

df2 <- as.data.frame(tolower(df)) 
df2 <- as.data.frame(gsub("[[:punct:]]", "", df2)) 

が、これは行にデータフレームの列名を変換します。小文字で作成し、サンプルのデータフレームのすべての行から句読点を削除するにはどうすればよいですか(私は列名には興味がありません)?

答えて

0

我々はtidyverseを使用して元のデータセットに

df[] <- lapply(df, function(x) gsub("[[:punct:]]+", "", tolower(x))) 

の出力を割り当て、列(lapply(df, ..)を介してループすることにより、各列の区切り文字を削除し、これは

によって行うことができます
library(dplyr) 
df %>% 
    mutate_all(funs(gsub("[[:punct:]]+", "", tolower(.)))) 
+1

私はあなたが列間でとても簡単にループできることは知らなかった。ありがとう! – HeleL

関連する問題