Rで解析:日常的に使うかな?ベクトルに関するコマンド

Rの解析に役に立つ記事
スポンサーリンク

Rでデータを解析していると頻繁に使用するベクトル。でも、意外とベクトルに関するコマンドを知らなかったりしませんか。日常的に使うかもしれない、ベクトルの「作成と操作」のコマンドを紹介します。

コマンドは実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

実行コマンドの紹介

詳細はコメントを確認してください。なお、データ例の内容はsample関数で作成していますので実行のたびに内容が異なります。

<ベクトルの作成コマンド>

#数値のベクトル:0が指定した数のベクトル
numeric(10)
[1] 0 0 0 0 0 0 0 0 0 0

#文字列のベクトル
character(10)
[1] "" "" "" "" "" "" "" "" "" ""

#公差1のベクトル
10:0
[1] 10  9  8  7  6  5  4  3  2  1  0

#等差数列を作成するコマンド
#seqコマンド:seq(開始時の数字, 終了時の数字, by = 公差 or along = 配列の長さ)
head(seq(1, 10, by = 0.1))
[1] 1.0 1.1 1.2 1.3 1.4 1.5

#繰り返しのベクトルを作成するコマンド
#repコマンド:rep(ベクトル(文字列 or 数字列), times = 繰り返し回数, each = ベクトルの要素の繰り返し数)
#あ、いを3回繰り返す長さ6の文字ベクトルを2回繰り返す
rep(c("あ", "い"), times = 2, each = 3)
[1] "あ" "あ" "あ" "い" "い" "い" "あ" "あ" "あ" "い" "い" "い"

#ランダムなベクトルを作成する方法
#sampleコマンド:sample(ベクトル(文字列 or 数字列), size = 大きさ, replace = 置換え指定(TRUE or FALSE))
sample(paste("TEST", c("あ", "い"), sep = ""), size = 10, replace = TRUE)
[1] "TESTい" "TESTい" "TESTい" "TESTあ" "TESTあ" "TESTい" "TESTい" "TESTい" "TESTい" "TESTい"

<ベクトルの操作コマンド>

#&#32368;&#12426;&#36820;&#12375;&#12398;&#12505;&#12463;&#12488;&#12523;&#12434;&#20316;&#25104;&#12377;&#12427;&#12467;&#12510;&#12531;&#12489;&#12391;&#20316;&#25104;&#12375;&#12383;&#12505;&#12463;&#12488;&#12523;&#12434;&#20363;&#12395;&#12375;&#12414;&#12377;

#&#12505;&#12463;&#12488;&#12523;&#12398;&#35201;&#32004;
#&#25991;&#23383;&#21015;&#12398;&#22580;&#21512;
summary(TestVec)
Length     Class      Mode
12       character character
#&#25968;&#23383;&#12398;&#22580;&#21512;
summary(c(1:10))
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
1.00    3.25    5.50    5.50    7.75   10.00 

#&#12505;&#12463;&#12488;&#12523;&#12398;&#38263;&#12373;
length(TestVec)
[1] 12

#&#21336;&#19968;&#21270;:unique&#12467;&#12510;&#12531;&#12489;
unique(TestVec)
[1] "&#12354;" "&#12356;"

#&#35201;&#32032;&#12398;&#21462;&#12426;&#20986;&#12375;:[]&#12434;&#20351;&#29992;&#12375;&#12414;&#12377;&#12290;&#31684;&#22258;&#12398;&#25351;&#23450;&#12399;[ : ]&#12391;&#12377;
#4&#30058;&#30446;&#12398;&#35201;&#32032;&#12434;&#21462;&#12426;&#20986;&#12377;
TestVec[4]
[1] "&#12356;"
#6-10&#30058;&#30446;&#12398;&#35201;&#32032;&#12434;&#21462;&#12426;&#20986;&#12377;
TestVec[6:10]
[1] "&#12356;" "&#12354;" "&#12354;" "&#12354;" "&#12356;"

#&#35201;&#32032;&#12398;&#32622;&#25563;:&#20301;&#32622;&#12434;&#25351;&#23450;&#12375; <- &#12391;&#32622;&#25563;&#12360;&#12414;&#12377;
#&#20803;&#12364;&#25991;&#23383;&#21015;&#12505;&#12463;&#12488;&#12523;&#12394;&#12398;&#12391;&#25968;&#23383;&#12505;&#12463;&#12488;&#12523;&#12395;&#22793;&#25563;&#12375;&#12414;&#12377;
TestVec[1:12] <- sample(1:10, size = 12, replace = TRUE)
class(TestVec)
[1] "character"
TestVec <- as.numeric(TestVec)
class(TestVec)
[1] "numeric"
TestVec
[1]  1 10  4  5 10  2  8  4  4  6  7  1

#&#26465;&#20214;&#12395;&#12424;&#12427;&#12505;&#12463;&#12488;&#12523;&#12398;&#21462;&#12426;&#20986;&#12375;:&#12505;&#12463;&#12488;&#12523;[&#26465;&#20214;]&#12391;&#25351;&#23450;&#12375;&#12414;&#12377;
TestVec[TestVec > 2 | TestVec %% 2 == 0]
[1]  1 10  4 10  2  8  4  4  6  1

#&#26465;&#20214;&#12395;&#12424;&#12427;&#12505;&#12463;&#12488;&#12523;&#12398;&#20301;&#32622;&#12434;&#21462;&#12426;&#20986;&#12377;:which&#12467;&#12510;&#12531;&#12489;
#2&#12398;&#20493;&#25968;&#12398;&#20301;&#32622;
which(TestVec %% 2 == 0)
[1]  2  3  5  6  7  8  9 10

#&#38477;&#38918;&#26119;&#38918;:order&#12467;&#12510;&#12531;&#12489;
#&#27880;&#24847;:&#12467;&#12510;&#12531;&#12489;&#12398;&#36820;&#12426;&#20516;&#12399;&#38918;&#20301;&#12391;&#12377;
TestVec[order(TestVec, decreasing = TRUE)]
[1] 10 10  8  7  6  5  4  4  4  2  1  1

#&#12505;&#12463;&#12488;&#12523;&#12391;&#21516;&#12376;&#20516;&#12364;&#32154;&#12367;&#22238;&#25968;&#12392;&#21462;&#12426;&#20986;&#12375;:rle&#12467;&#12510;&#12531;&#12489;
#&#32080;&#26524;&#12399;&#12522;&#12473;&#12488;&#12391;&#36820;&#12373;&#12428;&#12414;&#12377;
TestVec[1:12] <- sample(1:3, size = 12, replace = TRUE)
[1] 2 2 2 2 3 2 1 1 1 2 3 2
GetRle <- rle(TestVec)
GetRle
Run Length Encoding
lengths: int [1:7] 4 1 1 3 1 1 1
values : int [1:7] 2 3 2 1 2 3 2

#&#12362;&#12414;&#12369;
#&#22238;&#25968;&#12434;&#21462;&#12426;&#20986;&#12377;
GetRle[[1]]
[1] 4 1 1 3 1 1 1
#&#20516;&#12434;&#21462;&#12426;&#20986;&#12377;
GetRle[[2]]
[1] 2 3 2 1 2 3 2

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました