0

シミュレーションの目的で、スペースとピリオドを含む英字の長い有限文字列を生成する方法を見つけようとしています。私は連結とregで遊んでいます。exp、ヘルプファイルを見ていますが、Rの初心者であるため、あまり進歩していません。これまでに得たのは だけですx <- sample(c("a", "b", "c", " ", ".", 100, replace=TRUE)。えーと、たったの3文字です。私は [a:z] などを試してきましたが、c() はそれを好まないようで、エラーが発生します。

次に、c() ですべての文字を列挙しても、サンプル関数は各文字が要素である文字ベクトルを返します。

str(x)
chr [1:100] "c" "b" "a" "b" ...

しかし、文字列全体を文字ベクトルの 1 つの要素にする必要があります。私が探している関数の例は、「asdf twdjk.fd alw」のような任意の長さのテキスト文字列を生成します。この場合は 17 です。したがって、結果に対して str() を実行すると、結果が得られるはずです。 :

str(x)
chr "asdf twdjk.fd alw"

ヒントをお寄せいただきありがとうございます。

4

2 に答える 2

3

Rはアルファベットのすべての文字を組み込み定数として提供するため、生成する文字を取得するには、次のようにします。

chars = c(letters, " ", ".")

次にpaste0、サンプリングの結果を 1 つの文字列に結合するために使用します。

paste0(sample(chars, 100, replace=TRUE), collapse="")
于 2013-11-01T05:16:55.057 に答える
1

うまくいけば、誰かがもっとうまくできる:

Alphabet <- c(LETTERS, " ", ".")

set.seed(123)
x <- sample(Alphabet, 17) # maybe replace=TRUE
x <- as.list(x)

pasteNoSpaces <- function(...) paste(..., sep="")  # paste0 is better
do.call("pasteNoSpaces", x)
于 2013-11-01T05:21:43.020 に答える