English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
新しい言語を学ぶのは、"Hello, World!"プログラムの出力から始まるのが一般的です。R言語の"Hello, World!"プログラムのコードは以下の通りです:
myString <- "Hello, World!" print ( myString )
以下の例では、文字列"Hello, World!"をmyString変数に代入し、print()関数を使用して出力します。
注意:R言語の代入には左矢印<を使用しています- シンボル、ただし、いくつかの新しいバージョンでは等号もサポートされています =。
R言語の有効な変数名は、アルファベット、数字、ピリオド.、またはアンダースコア_で構成されています。
変数名はアルファベットまたはピリオド.で始まります。
変数名 | 正しいかどうか | 理由 |
---|---|---|
var_name2. | 正しい | 文字で始まり、アルファベット、数字、アンダースコア_、ピリオド.で構成されています |
var_name% | エラー | %は無効な文字です |
2var_name | エラー | 数字で始まることはできません |
.var_name, var.name | 正しい | ピリオド.で始めることができますが、ピリオド.の後には数字を続けられません |
.2var_name | エラー | ピリオド.で始まる場合は、その後には数字を続けられません |
_var_name | エラー | アンダースコア_で始まることはできません |
最新バージョンのR言語の代入は左矢印<を使用できます-、等号 = 、右矢印 -> 代入:
# 使用等号 = 号代入 > var.1 = c(0,1,2,3) > print(var.1) [1] 0 1 2 3 # 使用左矢印 <-代入 > var.2 <- c("learn","R") > print(var.2) [1] "learn" "R" # 使用右矢印 <- 代入 > c(TRUE,1) -> var.3 > print(var.3) [1] 1 1
定義されている変数を確認するには ls() 関数:
> print(ls()) [1] "var.1" "var.2" "var.3"
変数を削除するには rm() 関数:
> rm(var.3) > print(ls()) [1] "var.1" "var.2" >
前の章でRのプログラミング環境のインストール方法を学びました。次に、R言語のインタラクティブプログラミングとファイルスクリプトプログラミングを紹介します。
コマンドラインでRコマンドを実行するだけで、インタラクティブなプログラミングウィンドウに入れます:
R
このコマンドを実行すると、R言語のインタープリタが呼び出されます。>シンボルの後にコードを入力します。
インタラクティブなコマンドはq()を入力して終了できます:
> q() Save workspace image? [y/n/c]: y
R言語のファイルエクスパンションは.Rです。
次に、w3codebox-test.R ファイル:以下はコードです:
次に、コマンドラインウィンドウでRscriptを使用してスクリプトを実行します:
Rscript w3codebox-test.R
以下に表示される出力結果です:
[1] "w3codebox"
print()はR言語の出力関数です。
他のプログラミング言語と同様に、R言語は数字、文字などの出力をサポートしています。
出力の文は非常にシンプルです:
print("w3codebox") print(123) print(3e2)
実行結果:
[1] "w3codebox" [1] 123 [1] 300
R言語はnode.jsやPythonと同様に、解釈型言語であり、そのため、コマンドラインのようにR言語を使用することができます。
一行で値を入力する場合、Rはそれを直接標準化して出力します:
> 5e-2 [1] 0.05
結果の結合を出力する必要がある場合は、cat()関数を使用できます:
> cat(1, "に加えます", 1, "に等しい", 2, '\n') 1 に加えます 1 に等しい 2
cat()関数は結合された要素の間に自動的にスペースを追加します。
R言語でファイルに出力する方法は多様で、非常に便利です。
cat()関数は直接結果を出力するファイルをサポートしています:
cat("w3codebox", file="/Users/w3codebox/w3codebox-test/r_test.txt")
このステートメントはコンソールに結果を生成しません。代わりに「w3codebox"を「/Users/w3codebox/w3codebox-test/r_test.txt"ファイルに输出されます。
fileパラメータは絶対パスまたは相対パスで指定できます。絶対パスを使用することをお勧めします。Windowsのパス形式はD:\\r_test.txtです。
cat("w3codebox", file="D:\\r_test.txt")
注意:この操作は「覆盖写入」操作であり、慎重に使用してください。元の输出ファイルのデータが削除されます。追加で书き込む場合は、appendパラメータを忘れずに設定してください:
cat("GOOGLE", file="/Users/w3codebox/w3codebox-test/r_test.txt", append=TRUE)
上記のコードを実行後、r_test.txtファイルの内容を以下のように開いてみてください:
w3codeboxGOOGLE
sink()関数は、コントロールターミナルの输出を直接ファイルに输出することができます:
sink("/Users/w3codebox/w3codebox-test/r_test.txt")
このステートメントを実行すると、コントロールターミナルの任何の输出が「/Users/w3codebox/w3codebox-test/r_test.txt"ファイルに书き込まれ、コントロールターミナルには表示されません。
注意:この操作は「覆盖写入」操作であり、元のファイル内容を直接削除します。
コントロールターミナルの输出を保持したい場合は、split属性を設定できます:
sink("/Users/w3codebox/w3codebox-test/r_test.txt", split=TRUE)
ファイルへの输出をキャンセルするには、無参数のsinkを呼び出すことができます:
sink()
sink("r_test.txt", split=TRUE) # コントロールターミナルにも输出 for (i in 1:5) print(i) sink() # ファイルへの输出をキャンセル sink("r_test.txt", append=TRUE) # コントロールターミナルに输出しない、ファイルに追加で书き込む print("w3codebox")
上記のコードを実行すると、現在のディレクトリにr_test.txtというファイルが生成されます。ファイルの内容を以下のように開いてみてください:
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5 [1] "w3codebox"
コントロールターミナルの输出は以下の通りです:
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5
私たちが思いつくのは、C言語のscanfやJavaのjava.util.Scannerですが、Pythonを学んだことがあればinput()関数がより馴染みがあるかもしれません。しかしR言語自体は、解釈型言語であり、バッシュやPowerShellのようなターミナルスクリプト言語に似ています。これらの言語はコマンドシステムに基づいており、入出力が必要で、ユーザー向けのアプリケーション開発には向いていません(なぜなら、それらは最終ユーザー向けに使用されているからです)。したがって、R言語にはコントロールターミナルから読み込むための専用の関数はなく、テキスト入力はRの使用中に常に行われています。
R 言語には豊富なファイル読み込み関数がありますが、ファイルの内容を文字列として読み込む纯粹な方法として、readLines 関数を使用することができます:
readLines("/Users/w3codebox/w3codebox-test/r_test.txt")
実行結果:
[1] "w3codeboxGOOGLE"
読み込んだ結果は二つの文字列で、読み込んだファイルに含まれる二行の内容です。
注意:読み込んだテキストファイルの各行(最後の行も含め)の終わりには、改行符が必要で、それがないとエラーが発生します。
文字の単純な入出力以外にも、R 言語はデータをファイルに直接保存する方法を提供しており、CSV、Excel テーブルなどの形式で保存ができ、直接読み込むこともできます。これは数学研究者にとって非常に便利ですが、これらの機能は R 言語の学習に対して大きな影響を与えません。これらの機能についての詳細は、後の章で説明します。
ファイル操作を行う場合、ファイルのパスを設定する必要があります。R 言語では以下の二つの命令を使用して、現在の作業ディレクトリを取得および設定することができます:
getwd() : 現在の作業ディレクトリを取得
setwd() : 現在の作業ディレクトリを設定
# 現在の作業ディレクトリ print(getwd()) # 現在の作業ディレクトリを設定 setwd("/Users/w3codebox/w3codebox-test2") # 現在の作業ディレクトリを確認 print(getwd())
以下のコードを実行すると、結果が表示されます:
[1] "/Users/w3codebox/w3codebox-test" [1] "/Users/tianqixin/w3codebox-test2"