R-変数とタイプ

6926 ワード

変数#ヘンスウ#
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言语の中でかなりよく使うので、具体的な使用、その他の方法、私は更に単独で补充して、もし中に何か间违いがあるならばあるいは漏らして、指摘を歓迎して、品鉴に感谢します!!