R-変数とタイプ
6926 ワード
変数#ヘンスウ#
R言語の変数は非常に不思議で、java、pythonを比較するとA容器にはラベルがなく、どんな種類の値を入れることができます-----------------------R B容器は最初からラベルがあり、定義タイプの値を入れるしかありません------java C容器は一度使っただけでラベルがあり、1種類の値を入れるしかありません--python
ここでのラベルは、変数の「値のタイプ」を指します.
時にはR言語は1つの変数が1段のコードを食べることができて、もちろん、私たちはこのようにすることをお勧めしません;もしあなたが突然振り返って前に使った値を探したいなら、結局あなたはどれがどれなのか全然分かりません.つらいのではないでしょうか.前のコードをもう一度実行しなければなりません.だから、一つのコード規範の観点からでも、使いやすいように、読者たちに良いコードを書く習慣があることを望んでいます.それでは、変数から始めましょう.では、変数とは何でしょうか.前の例で述べたように、変数はメモリに格納され、データ(値、オブジェクト)を格納するための独自の空間を持つコンテナです.
変数命名規則:
1、アルファベット、数字、点(
変数の代入記号:
ここで、「=」はよく知られている付与演算子であり、他の2つの付与記号は、小さな矢印と見なすことができ、どこがどこに付与されるかを指し、非常に簡単で乱暴である.
簡単なケース:変数xに値を割り当て、12
印刷出力関数:
簡単なケース:hello worldを出力!
変数の検索:
ls()関数:
変数の削除:
rm()関数:
私たちがこの変数を必要としなくなったとき、rm()関数を使ってそれを非情に捨てることができます:)、もちろん、私はあなたたちを「スラグ男/女」に導くのではなく、大量の変数がメモリを占有するため、プログラムの実行速度を低下させるので、「ナイフを研ぐ」必要があります.rm()とls()を組み合わせて使用し、削除効率を向上させることもできます.
[私のケースでは、便利なところが見えないかもしれませんが、これは私のネーミング方法の問題です.検討します]前の変数が分類されている場合(いずれも
を選択します.
R言語には、ベクトル、リスト、マトリックス、配列、ファクタ、データ・ボックス(data.frame)という一般的なRオブジェクトがあります.
最も単純な当属ベクトルは、以下の6つの基本タイプ(
データ型
≪インスタンス|Instance|emdw≫
コードと結果
ろんりがた
TRUE,FALSE
数値タイプ
23.2, 5, 99.99
整数型
2L, 45L
ふくすうがた
4+3i
もじがた
シーケンス化文字(オリジナル)
stringタイプはなく、すべての文字(列)がcharacterであることを覚えておいてください.
ベクトル(Vector)
複数の要素のベクトルを作成するには、複数の要素を組み合わせることができるc()関数が必要です.
異なるタイプの要素が組み合わされると、非常に興味深い変化が起こります.
c()関数は複数の要素を1つのベクトルに組み合わせることができるが、1つのベクトルは1つのタイプにしかならない.numeric(),as.complex(),as.character(),as.logical(),as.integer(), rawToChar(),toString()...など.
リスト#リスト#
リストというRオブジェクトは、多くの異なるタイプの要素、ベクトル、関数、または別のリストを含むことができます.
マトリックス
行列は2次元配列として理解でき,ベクトルの形式で入力される.
はいれつ
配列の次元数は任意で、作成時にdimという属性で制御されます
けいすう
因子はベクトル形式のRオブジェクトである.係数は、ベクトル内の要素の異なる値をラベルとして使用します.ラベルは常に文字であり、数値、文字、論理(ブール)などにかかわらず、統計モデリングに役立ちます.
データボックス
データボックスは、表タイプのRオブジェクトです.マトリクスと異なる点は、マトリクスのタイプが一意であり、要素は同じタイプしかないことです.データ・ボックスは、カラムとカラムのタイプが異なる場合があります.データ・ボックスの各カラムは、組み合わせベクトルとして使用でき、長さは同じです.dataを使用する.frame()関数が作成されます.
まとめ
これらのタイプはすべてR言语の中でかなりよく使うので、具体的な使用、その他の方法、私は更に単独で补充して、もし中に何か间违いがあるならばあるいは漏らして、指摘を歓迎して、品鉴に感谢します!!
R言語の変数は非常に不思議で、java、pythonを比較するとA容器にはラベルがなく、どんな種類の値を入れることができます-----------------------R B容器は最初からラベルがあり、定義タイプの値を入れるしかありません------java C容器は一度使っただけでラベルがあり、1種類の値を入れるしかありません--python
ここでのラベルは、変数の「値のタイプ」を指します.
時にはR言語は1つの変数が1段のコードを食べることができて、もちろん、私たちはこのようにすることをお勧めしません;もしあなたが突然振り返って前に使った値を探したいなら、結局あなたはどれがどれなのか全然分かりません.つらいのではないでしょうか.前のコードをもう一度実行しなければなりません.だから、一つのコード規範の観点からでも、使いやすいように、読者たちに良いコードを書く習慣があることを望んでいます.それでは、変数から始めましょう.では、変数とは何でしょうか.前の例で述べたように、変数はメモリに格納され、データ(値、オブジェクト)を格納するための独自の空間を持つコンテナです.
変数命名規則:
1、アルファベット、数字、点(
.
)と下線(_
)からなり、他の文字(例:%,$,#...
)2があってはならない、数字ではいけない、下線(_
)で始まる3、点(.
)で始まる、点後に直接数字についていけない(エラー例:.2var_name
)、隠匿変数4、見名知意(例:hotel_price,hotel.price,hotelPrice
)5、R言語の厳格な要求
(関数であれ変数であれ)変数の代入記号:
、->>:
ここで、「=」はよく知られている付与演算子であり、他の2つの付与記号は、小さな矢印と見なすことができ、どこがどこに付与されるかを指し、非常に簡単で乱暴である.
簡単なケース:変数xに値を割り当て、12
> x x = 12
> 12 -> x
印刷出力関数:
print(): ,
cat(): , , " , '
' "
簡単なケース:hello worldを出力!
> print('hello world!')
[1] "hello world!"
> print(paste('hello','world!')) #paste , , paste0
[1] "hello world!"
> cat('hello','world!')
hello world!
変数の検索:
ls()関数:
> ls() # ,
[1] "df" "max" "num" "percentage" "x" "y"
> ls(pattern = 'm') # m
[1] "max" "num"
> ls(pattern = '\\w{3}') #
[1] "max" "num" "percentage"
> ls(all.names = TRUE) # , ( )
[1] ".Random.seed" "df" "max" "num" "percentage" "x"
[7] "y"
変数の削除:
rm()関数:
> rm('x') # ‘x’
> ls()
[1] "df" "max" "num" "percentage" "y"
私たちがこの変数を必要としなくなったとき、rm()関数を使ってそれを非情に捨てることができます:)、もちろん、私はあなたたちを「スラグ男/女」に導くのではなく、大量の変数がメモリを占有するため、プログラムの実行速度を低下させるので、「ナイフを研ぐ」必要があります.rm()とls()を組み合わせて使用し、削除効率を向上させることもできます.
> rm(list = ls(pattern = 'm')) # ‘m’
> ls()
[1] "df" "percentage" "y"
> rm(list = ls()) #
> ls()
character(0)
[私のケースでは、便利なところが見えないかもしれませんが、これは私のネーミング方法の問題です.検討します]前の変数が分類されている場合(いずれも
hotel_
で始まる変数名)、削除するときに便利かどうか考えてみてください.を選択します.
R言語には、ベクトル、リスト、マトリックス、配列、ファクタ、データ・ボックス(data.frame)という一般的なRオブジェクトがあります.
最も単純な当属ベクトルは、以下の6つの基本タイプ(
とも呼ばれる)の上に構築される.データ型
≪インスタンス|Instance|emdw≫
コードと結果
ろんりがた
TRUE,FALSE
> class(TRUE) - [1] "logical"
数値タイプ
23.2, 5, 99.99
> class(12.5) - [1] "numeric"
整数型
2L, 45L
> class(45L) - [1] "integer"
ふくすうがた
4+3i
> class(4+3i) - [1] "complex"
もじがた
'1', 'hello', "world"
> class('hello') - [1] "character"
シーケンス化文字(オリジナル)
"hello"
格納:48 65 6c 6c 6f
> class(charToRaw('hello')) - [1] "raw"
stringタイプはなく、すべての文字(列)がcharacterであることを覚えておいてください.
ベクトル(Vector)
複数の要素のベクトルを作成するには、複数の要素を組み合わせることができるc()関数が必要です.
> demo01 demo01 # demo01 ( print() cat())
[1] "hello" "world" "!"
> class(demo01)
[1] "character"
異なるタイプの要素が組み合わされると、非常に興味深い変化が起こります.
#1、logical raw
> demo01 demo01
[1] TRUE TRUE TRUE TRUE TRUE TRUE
# 0 logical TRUE,0 FALSE
> class(demo01)
[1] "logical"
#2、logical integer
> demo01 demo01
[1] 1 12
#TRUE 1,FALSE 0
> class(demo01)
[1] "integer"
#3、integer numeric
> demo01 demo01
[1] 12.0 13.5
> class(demo01)
[1] "numeric"
#4、numeric complex
> demo01 demo01
[1] 13.5+0i 3.0+2i
> class(demo01)
[1] "complex"
#5、complex character
> demo01 demo01
[1] "3+2i" "hello"
> class(demo01)
[1] "character"
c()関数は複数の要素を1つのベクトルに組み合わせることができるが、1つのベクトルは1つのタイプにしかならない.numeric(),as.complex(),as.character(),as.logical(),as.integer(), rawToChar(),toString()...など.
リスト#リスト#
リストというRオブジェクトは、多くの異なるタイプの要素、ベクトル、関数、または別のリストを含むことができます.
#
> list1 list1
[[1]]
[1] "as" "R"
[[2]]
[1] "hello"
[[3]]
function (x, ...)
UseMethod("mean")
[[4]]
[[4]][[1]]
[1] "you"
[[4]][[2]]
[1] "be"
# list1
> list1[[1]]
[1] "as" "R"
raw->logical->integer->numeric->complex->character
マトリックス
行列は2次元配列として理解でき,ベクトルの形式で入力される.
#
> x x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
#byrow F(FALSE), TRUE,
> x x
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> y y
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> 2*x # * , *
[,1] [,2] [,3]
[1,] 2 4 6
[2,] 8 10 12
> x%*%y # %*%
[,1] [,2]
[1,] 14 32
[2,] 32 77
# dim()
> dim(x)
[1] 2 3
#
> dim(x) x
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
はいれつ
配列の次元数は任意で、作成時にdimという属性で制御されます
#
> x x
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
#
> x[1,1,1]
[1] 1
> x[1,2,2]
[1] 9
けいすう
因子はベクトル形式のRオブジェクトである.係数は、ベクトル内の要素の異なる値をラベルとして使用します.ラベルは常に文字であり、数値、文字、論理(ブール)などにかかわらず、統計モデリングに役立ちます.
# x, factor( ),
> x x
[1] 1 2 3 4 5 6 7 8 9 10 11 12
Levels: 1 2 3 4 5 6 7 8 9 10 11 12
# factor , , ,
#
> nlevels(x)
[1] 12
データボックス
データボックスは、表タイプのRオブジェクトです.マトリクスと異なる点は、マトリクスのタイプが一意であり、要素は同じタイプしかないことです.データ・ボックスは、カラムとカラムのタイプが異なる場合があります.データ・ボックスの各カラムは、組み合わせベクトルとして使用でき、長さは同じです.dataを使用する.frame()関数が作成されます.
> df df
id color
1 1 red
2 2 yellow
3 3 green
4 4 red
5 5 green
#
> df[1,2]
[1] red
Levels: green red yellow
> df[1,'color']
[1] red
Levels: green red yellow
まとめ
これらのタイプはすべてR言语の中でかなりよく使うので、具体的な使用、その他の方法、私は更に単独で补充して、もし中に何か间违いがあるならばあるいは漏らして、指摘を歓迎して、品鉴に感谢します!!