0
私は、データフレーム内のある行の各単語が所定の時間に発生する回数を数えようとしています。私はこの結果を取得しようとしていますテーブルオブジェクトを元のデータフレームに戻して結合しますか?
library(stringr)
df <- data.frame("Corpus" = c("this is some text",
"here is some more text text",
"more food for everyone",
"less for no one",
"something text here is some more text",
"everyone should go home",
"more random text",
"random text more more more",
"plenty of random text",
"the final piece of random everyone text"),
"Class" = c("X", "Y", "Y", "Y", "Y",
"Y", "Y", "Z",
"Z", "Z"),
"OpenTime" = c("12/01/2016 10:45:00", "11/07/2016 10:32:00",
"11/15/2015 01:45:00", "08/23/2012 1:23:00",
"12/17/2016 11:45:00", "12/16/2016 9:47:00",
"04/11/2015 04:23:00", "11/27/2016 12:12:00",
"08/25/2015 10:46:00", "09/27/2016 10:46:00"))
:ここに私のデータフレームである
Class OpenTime Word Frequency
X 12/01/2016 10:45:00 this 1
X 12/01/2016 10:45:00 is 1
X 12/01/2016 10:45:00 some 1
X 12/01/2016 10:45:00 text 1
Y 11/07/2016 10:32:00 here 1
Y 11/07/2016 10:32:00 is 1
Y 11/07/2016 10:32:00 some 1
Y 11/07/2016 10:32:00 more 1
Y 11/07/2016 10:32:00 text 2
...
私はすべてのdplyr
でgroupby
でこれを行うのが大好きですが、私はまだ持っていないその仕事へ。代わりに、これは私が試したものです:
splits <- strsplit(as.character(df$Corpus), split = " ")
counts <- lapply(splits, table)
counts.melted <- lapply(counts, melt)
これは私が欲しい転置ビューできます:
> counts.melted
[[1]]
Var1 value
1 is 1
2 some 1
3 text 1
4 this 1
[[2]]
Var1 value
1 here 1
2 is 1
3 more 1
4 some 1
5 text 1
...
をしかし、どのように私が生成するために、元のデータとバック溶融したベクトルのリストを結び付けることができます希望の出力は?私はrep
を使って、各行にある単語の数だけClass
の値を繰り返してみましたが、ほとんど成功しませんでした。 for
ループでこれをすべて行うのは簡単ですが、多くの場合lapply
のようなベクトル化されたメソッドを使用します。
out.df <- data.frame("RRN" = NULL, "OpenTime" = NULL,
"Word" = NULL, "Frequency" = NULL)