11

私はRの学習を開始し、以下のようにベクトルを作成しようとしています:

c(""check"")

「チェック」として出力が必要です。しかし、構文エラーが発生しています。ベクトルの作成中に引用符をエスケープする方法は?

4

3 に答える 3

24

@juba が述べたように、1 つの方法は引用符を直接エスケープすることです。

もう 1 つの方法は、二重引用符を含む文字式を一重引用符で囲むことです。

> x <- 'say "Hello!"'
> x
[1] "say \"Hello!\""
> cat(x)
say "Hello!"
于 2013-03-04T15:34:22.737 に答える
13

他の回答は、ベクターを作成するときに文字列の二重引用符を処理する方法をうまく示しています。これは、質問で最後に尋ねたものです。ただし、 displayoutputについても言及したことを考えると、覚えておく必要があるかもしれませんdQuote。文字ベクトルの各要素を二重引用符で囲む場合、特に実際の文字ベクトル自体に二重引用符を格納する必要がない場合、またはそれを望まない場合に便利です。

# default is to use "fancy quotes"
text <- c("check")
message(dQuote(text))
## “check”

# switch to straight quotes by setting an option
options(useFancyQuotes = FALSE)
message(dQuote(text))
## "check"

# assign result to create a vector of quoted character strings
text.quoted <- dQuote(text)
message(text.quoted)
## "check"

価値のあることとして、このsQuote関数は単一引用符で同じことを行います。

于 2013-03-04T17:10:06.503 に答える
6

バックスラッシュを使用します:

x <- "say \"Hello!\""

cまた、ベクトルを作成しない場合は、を使用する必要はありません。

エスケープせずに引用符を出力する場合は、次catの代わりに使用する必要がありprintます。

R> cat(x)
say "Hello!"
于 2013-03-04T15:00:50.030 に答える