2017-03-04 9 views
1

を\私はこのようなウェブチャットログの数を持っている: rをする上のRでreadlines nはn個

Agent: Click here. \n Then click here. \n Then do this. \r\n 

Customer: Show me. \r\n 

Agent: Ok. \n One Second. \r\n 

私はRIにインポートする場合のみ\ rを\ nは改行として扱いたいです、 \ nではありません。私はreadline()でそれを行うオプションはありませんか?これを行う最善の方法はありますか?ここで

Pythonでスタックオーバーフローのソリューションです:How to split only on carriage returns with readlines in python?

答えて

4

私は1つは、これを行うためにreadLines()を使用することができるかどうかに見えたが、私はreadLines()でそれを行うための簡単な方法を見ていません。

基本機能readline()はここでは役に立ちません。

回避策は、スキャンでテキストを読み取り、結果を解析することです。例えば

あなたのテキストがfoo.txtのであれば、:

words <- scan("foo.txt", what = "character") 
words2 <- words[words != "\\n"] 
onepar <- paste(words2, collapse = " ") 
library(stringr) 
lines <- str_split(onepar, pattern = fixed(" \\r\\n"), simplify = TRUE) 
lines 

    [,1]            [,2]      [,3]      [,4] 
[1,] "Agent: Click here. Then click here. Then do this." " Customer: Show me." " Agent: Ok. One Second." "" 

あなたは、私はあなたが望むことを考えるものに似たものを取得するために、空白を削除することができます。

私はもっと洗練されたソリューションを望んでいます。

+1

'scan'の代わりに' readr :: read_file'を使うと少しシンプルになると思います。 – Scarabee

関連する問題