メモ:エスケープシーケンスは\
+1文字
はRの{base}
のnchar()
や、{stringr}
のstr_length()
で文字数カウントするとき、1文字でカウントされる。テキスト処理していてちょっとハマったのでメモ。
というかエスケープシーケンスの最初の\
文字はカウントされていないのか?それとも併せて1文字とみなされている?writeLines()
のようなもので表現される状態の文字でカウントする?のか詳細はよくわかっていない(今後調べるかも)。
あと、エスケープシーケンスを含めてちゃんと(?)2文字でカウントする方法もわからなかった。
例
改行\n
の場合
writeLines("123\n123")
## 123
## 123
nchar("123\n123")
## [1] 7
stringr::str_length("123\n123")
## [1] 7
タブスペース\t
writeLines("123\t123")
## 123 123
nchar("123\t123")
## [1] 7
stringr::str_length("123\t123")
## [1] 7
バックスラッシュ\\
writeLines("123\\123")
## 123\123
nchar("123\\123")
## [1] 7
stringr::str_length("123\\123")
## [1] 7
などなど。