私は、データのテキスト分析を提供するために取り組んできました。多くの場合、分析には、紙に書き起こしをコーディングし、その情報を数値コードとして R にインポートすることが含まれていました。上記の単語番号を特定の行幅 (任意の 80 文字を使用しましょう) にカットした単語の書き起こしを出力したいと考えています。
最小限の視覚化の例:
#what we start with:
person text word.num
1 greg The 1
2 greg dog 2
3 greg went 3
4 greg to 4
5 greg the 5
6 greg zoo, 6
7 greg but 7
8 greg ate 8
9 greg first. 9
10 sally He 10
11 sally likes 11
12 sally water 12
13 sally a 13
14 sally bit 14
15 sally too. 15
#欲しいもの:
1 2 3 4 5 6
The dog went to the zoo,
7 8 9 10 11
but ate first. He likes
12 13 14 15
water a bit too.
単語数が大きくなると短い単語を超える可能性があり、単語の前に追加のスペースを配置する必要があるという追加の問題が発生します。これは、最大数の最大文字数 (桁数) を決定し、この量よりも少ない単語の後に十分なスペースを追加することで、貼り付けプロセスで簡単に実行できると思います。
これまでのところ、これに取り組むために私の考えは次のとおりでした。
- 各行が特定の最大長である文字ベクトルの 1 列の行列を作成します (
strwrap
ここで役立つ場合があります)。 - 上記で説明したように、短い単語の後に余分なスペースを追加します (ここ
nchar
でgsub
役立つ場合があります)。 - 単語カウント関数を使用して付随する行列の数値を決定し、数値
cumsum
(seq
実際には文字) の付随する行列を作成します。これも 1 列です。これは、行ごとに文字 (単語) マトリックスと一致します。 - ここで、2 つの行列を行ごとに交互にする必要があります (これを行う方法がわからない)
- 単語の上の数字を揃えます(これを行う方法はわかりませんが、
nchar
ここで役立つかもしれません)
私はこれを基本ツールに保持したいと思いますが、HadelystringR
が役立つと確信していますが、この依存関係を避けたいと考えています。
dput
上記のデータ:
dat <- structure(list(person = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("greg", "sally"), class = "factor"),
text = structure(c(10L, 5L, 14L, 11L, 9L, 15L, 4L, 2L, 6L,
7L, 8L, 13L, 1L, 3L, 12L), .Label = c("a", "ate", "bit",
"but", "dog", "first.", "He", "likes", "the", "The", "to",
"too.", "water", "went", "zoo,"), class = "factor"), word.num = 1:15), row.names = c(NA,
-15L), .Names = c("person", "text", "word.num"), class = "data.frame")
将来のSOユーザーが検索可能でありながら、その考えを捉えたと感じたタイトルを考案できませんでした. 編集を提案してください...