1

RStudio を使用して、R マークダウンのコード チャンク内のファイル (パイプ区切り) を読み込もうとしています。Rマークダウンコードチャンクについては以下を参照してください

```{r}
dealInfo <- read.table("deneme.dat",header=TRUE,sep="|",quote="",comment="",fill=TRUE)
dim(dealInfo)
```  

出力

dealInfo <- read.table("deneme.dat", header = TRUE, sep = "|", quote = "", comment = "", 
fill = TRUE)
## Warning: invalid input found on input connection 'deneme.dat'
## Warning: incomplete final line found by readTableHeader on 'deneme.dat'
dim(dealInfo)
## [1]  1 50

ファイルの最初の行には、「Société」という単語があります。ただし、コンソール read.table にコマンドを入力すると、ファイル内のすべての行が問題なく読み取られます。data.frame に読み込まれるときの「é」文字は、「\xe9」に変換されます。ファイル deneme.dat には 3 行のデータが含まれています。マークダウンで dealInfo の内容を出力すると、「é」が最初に出現した後は何も読み取られないことがわかります。これは、2番目の警告を説明していると思います。

同じファイルを読み取るときにコンソールとマークダウンの動作が異なる理由はわかりません。ロケールとその他の構成パラメーターは両方の環境で同じようです。どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

3

これは、RStudio と Knitr の両方で少し前に修正された (ファイル エンコーディングに関する) バグだと思います。RStudio (v0.97.316)Knitr (v1.0.5 ) をアップグレードして、問題が解決しないかどうかを確認してください。FAQ 1も参照してください:)

最悪の場合、Rmd ドキュメントを OS のネイティブ エンコーディングで再保存できます ( File => Save with Encoding)。あなたが説明した問題の根本的な理由は、RStudio がoptions(encoding = ...)ドキュメントのエンコーディングを宣言するために使用していたことですが、それは R セッション全体のエンコーディングを変更したため、不適切でした (これは私の間違った指示が原因であったことを認めます始まり)。これで、RStudio はエンコーディングをknitr邪魔にならない方法で渡すことができるようになりました。

于 2013-02-09T23:24:03.823 に答える