自動テーブルをtex形式で書き込む関数を書いています。私が抱えている問題の 1 つは、長い文字列を持つテーブルです。これを解決するために、長い文字列をより多くの行に分割する関数を作成しました。私の関数は、前に少なくとも文字があるすべてのスペースでlen
壊れます(単語を壊しません)。このルールを次のように変更します: 次のスペースに少なくともlen
文字が含まれるすべてのスペースで区切ります (つまり、単語が 10 文字を超える場合を除いて、文字を超える「部分文字列」は必要ありませんlen
)。
quebra <- function(text, len=30) {
trim <- function(x) gsub('^ *|(?<= ) | *$', '', x, perl=TRUE)
quebrado <- strsplit(trim(paste(text)),paste0('(?<=.{',len,'}) '), perl=T)
tam <- max(sapply(quebrado, length))
out <- sapply(quebrado, function(x, tam) x[1:tam], tam=tam)
out[is.na(out)] <- ''
out
}
例:
quebra('1234567890 123456789 123456789', 10)
戻ります:
[,1]
[1,] "1234567890"
[2,] "123456789 123456789"
でも私はしたい:
[,1]
[1,] "1234567890"
[2,] "123456789"
[3,] "123456789"
これでうまくいくと思いますが、strsplit()
フォーマットに適応させることができませんでした。