質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

1564閲覧

RStudioで定義した日本語文字列を含む関数をEnvironmentタブからをクリックすると文字化けする。

KasaiRyusuke

総合スコア1

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2021/09/06 04:40

前提・実現したいこと

日本語を含む関数定義を行い、Environmentタブ->functions から定義した関数をクリックすると、日本語部分が文字化けする。

発生している問題・エラーメッセージ

R

1function(a, b) { 2 if((class(a)=="numeric")==FALSE | (class(b)=="numeric")==FALSE) { 3 stop("���l����͂��Ă�������") 4 } 5 a + b 6}

該当のソースコード

R

1# RユーザのためのRStudio[実践]入門 11-12ページ 2tashizan <- function(a, b) { 3 if((class(a)=="numeric")==FALSE | (class(b)=="numeric")==FALSE) { 4 stop("数値を入力してください") 5 } 6 a + b 7}

試したこと

メニューのTools -> Global Options -> code -> Saving
で、Default text encodeing を UTF-8 に設定

補足情報(FW/ツールのバージョンなど)

R 4.1.0
RStdio 1.4.1717

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Shift_JISエンコーディングで書かれた日本語をUTF-8エンコーディングとして読み込んだときの文字化けが起こっています。

回答後のコメントで判明しましたが、関数部分を範囲指定してRunボタンで実行したのですね。

おそらく、RStudioの「Global Options」のDefault text encodingや、「Project Options」のText encodingの設定に関係なく、関数の内容が(おそらくは現在のANSIコードページに基づいて)Shift_JISで保存されています。

ですから、登録後の関数を確認すると、「UTF-8を前提とした表示設定でShift_JISエンコードのテキストを表示した」ように文字化けします。これは、そのファイルを保存したかどうかに関係ありません。

いっぽう、Sourceボタンを使ってファイルの内容を実行する場合には、現在のエンコーディングが引数に指定されてsouceコマンドが実行されるので、登録後の関数を確認すると文字化けなしで表示されます。

Sourceボタンを押すと、編集中のファイルに名前を付けて保存していた場合はそのファイルが上書き保存されてから実行され、まだ名前を付けていない場合は、現在の内容を~/.active-rstudio-documentに一時的に保存してから実行します。

投稿2021/09/07 01:10

編集2021/09/08 04:15
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KasaiRyusuke

2021/09/07 10:59

回答ありがとうございます。私の説明が足りず申し訳ないのですが、 Scriptタブに関数定義を記載してファイルに"保存せずに"実行 → Environmentタブ->functions から定義した関数をクリック (実際には、Cosoleタブで > view(tashizan) が実行される) で表示される画面で文字化けが起こっています。 一方で、Consoleで > tashizan と入力すると、その下には文字化けせず正しく表示されるので、view関数の問題かもしれません。 一応、 UTF-8で関数定義部分を保存→再度開く→実行→Environmentで関数をクリック としても文字化けしてしまいました。
Daregada

2021/09/08 03:59

> Scriptタブに関数定義を記載してファイルに"保存せずに"実行 > → Environmentタブ->functions から定義した関数をクリック それを質問文に書かないと。
KasaiRyusuke

2021/09/12 10:12

回答ありがとうございます。 ご指摘いただいた、以下の2通り、 ・Scriptタブでファイルを保存せず範囲指定で実行 ・ファイルに保存してsourceボタンで実行 におけるEnvironmentタブで関数をクリックした場合の動作の違いが再現できましたので、これからは後者で分析、開発を進めようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問