患者識別子を含むデータセットと、医学的所見の要約を含むテキスト フィールド (患者ごとに 1 行) があります。要約の各文が異なる行に収まるようにテキスト フィールドを分割して、患者ごとに複数の行を持つデータセットを作成したいと考えています。続いて、特定のキーワードと否定語を探して各行をテキスト解析したいと思います。データ フレームの構造の例は次のとおりです (文字は文を表します)。
ID 概要
1 あああああ。bb。c
2 d。ええ。ff。g. h
3 i. じ
4k
「。」でテキストフィールドを分割したいと思います。それを次のように変換します。
ID 概要
1 aaaaa
1 bb
1 c
2 d
2 eee
2 ff
2 g
2 h
3 i
3 j
4 k
初期データ フレームを作成する R コード:
ID <- c(1, 2, 3, 4)
Summary <- c("aaaaa. bb. c", "d. eee. ff. g. h", "i. j", "k")
df <- data.frame(cbind(ID, Summary))
df$ID <- as.numeric(df$ID)
df$Summary <- as.character(df$Summary)
次の以前の投稿は、優れた解決策を提供します: R の列のテキスト データを分割 (融解) しますか?
このサンプル データセットで機能する投稿の次のコードを使用しました。
dflong <- by(df, df$ID, FUN = function(x) {
sentence = unlist(strsplit(x$Summary, "[.]"))
data.frame(ID = x$ID, Summary = sentence)
})
dflong2<- do.call(rbind,dflong)
ただし、より大きなデータセット (> 200,000 行) に適用しようとすると、次のエラー メッセージが表示されます
。
より小さなデータセットでテストするためにデータ フレームを縮小しましたが、行数が 57 を超えると常にこのエラー メッセージが表示されます。
より多くの行を処理できる別のアプローチはありますか? アドバイスをいただければ幸いです。ありがとうございました。