この質問は、順次ラベル付けされた dataframes で関数を繰り返すことについて私が尋ねた以前の質問の詳細です。
data.tables
以前は、フォルダーから R に読み込むために小さな変更を加える必要がありました (日付の変更、再コーディングなど)。
ただし、私の目標はもう少し複雑です。フォルダーからいくつかのテキスト ファイルを読み込み、それらの文字ベクトルからランダム サンプルを取得し、ランダム サンプルをコーパスに読み込み (パッケージを使用tm
)、生成したいと考えています。data.frame
単語/フレーズとその頻度のリストを持つ新しい。
これまでに開発したコードは次のとおりです。
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 5)) # Finds words or phrases
files <- list.files("~/path/", full.names = TRUE, pattern="\\.txt$") # Reads in files
out <- lapply(1:length(files), function(x) {
df <- scan(files[x], what="", sep="\n") # Read in files
df<-sample(c(df),size=1500,replace=F) # Take random sample
corpus <- Corpus(VectorSource(df)) # Create corpus
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
tdm <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer)) #Create term document matrix
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v) # Create new dataframe with words & their frequencies
})
ただし、この関数は機能しますがd
、残りを破棄して data.frames のみにアクセスする方法がわかりませんか? out
で作成されたすべてのオブジェクトが含まれていますかlapply
?