Rで質問:データフレームの操作方法について

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

お問い合わせからデータフレームの操作方法について質問をよく受領します。列・行の選択方法、抽出方法や要約・構造の表示方法が多いです。参考までにコマンド例を紹介します。

なお、質問に回答できない場合や問題が解決しないこともありますが、今後も「からだにいいもの」をよろしくお願いします。

なお、Rに収録されている基本的なコマンドを学ぶには下記書籍がおすすめです。

書籍名:Rプログラミングマニュアル(第2版)―Rバージョン3対応
著 者:間瀬 茂
価 格:4,536
発売日:2014/05
出版社:数理工学社

実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

実行コマンド

詳細はコメント、各パッケージのヘルプを確認してください。

###データ例の作成#####
TestData <- data.frame(Group = sample(paste0("Group", 1:5), 10, replace = TRUE),
                       Data1 = 1:10,
                       Data2 = 10:1)
#&#30906;&#35469;
TestData
Group Data1 Data2
1  Group5     1    10
2  Group4     2     9
3  Group4     3     8
4  Group5     4     7
5  Group4     5     6
6  Group4     6     5
7  Group2     7     4
8  Group5     8     3
9  Group4     9     2
10 Group3    10     1
#######

###data.frame&#12363;&#12425;&#29305;&#23450;&#12398;&#21015;&#12539;&#34892;&#12434;&#36984;&#25246;&#12377;&#12427;#####
#&#21015;:data.frame&#21517;[, &#36984;&#25246;&#12375;&#12383;&#12356;&#21015;&#30058;&#21495;&#12434;&#20837;&#21147;]
TestData[, 3]
[1] 10  9  8  7  6  5  4  3  2  1
#&#21015;:data.frame class&#12434;&#32173;&#25345;&#12375;&#12390;&#36984;&#25246;
#data.frame&#21517;[&#36984;&#25246;&#12375;&#12383;&#12356;&#21015;&#30058;&#21495;&#12434;&#20837;&#21147;]
TestData[3]
Data2
1     10
2      9
3      8
4      7
5      6
6      5
7      4
8      3
9      2
10     1
#&#34892;:data.frame&#21517;[&#36984;&#25246;&#12375;&#12383;&#12356;&#21015;&#30058;&#21495;&#12434;&#20837;&#21147;, ]
#data.frame class&#12434;&#32173;&#25345;&#12375;&#12414;&#12377;
TestData[3, ]
Group Data1 Data2
3 Group4     3     8
#################################

###&#35442;&#24403;&#12377;&#12427;&#26465;&#20214;&#12398;&#12415;&#12434;&#25277;&#20986;&#12377;&#12427;#####
#Data2&#12364;&#20598;&#25968;&#12434;&#25277;&#20986;
#&#20363;:subset&#12467;&#12510;&#12531;&#12489;
subset(TestData, TestData[, 3] %% 2 == 0)
Group Data1 Data2
1 Group5     1    10
3 Group4     3     8
5 Group4     5     6
7 Group2     7     4
9 Group4     9     2
#&#21542;&#23450;&#12398;&#27604;&#36611;&#28436;&#31639;&#23376;&#12391;&#20877;&#29694;:!=
subset(TestData, TestData[, 3] %% 2 != 1)
Group Data1 Data2
1 Group5     1    10
3 Group4     3     8
5 Group4     5     6
7 Group2     7     4
9 Group4     9     2
#&#34892;&#30058;&#21495;&#12364;&#22855;&#25968;&#12434;&#25277;&#20986;
#&#20363;:seq,nrow&#12467;&#12510;&#12531;&#12489;
seq(nrow(TestData)) %% 2 == 1, ]
Group Data1 Data2
1 Group5     1    10
3 Group4     3     8
5 Group4     5     6
7 Group2     7     4
9 Group4     9     2
#&#37325;&#35079;&#12434;&#21462;&#12426;&#38500;&#12367;
#&#27880;&#24847;:&#21021;&#12417;&#12398;&#12487;&#12540;&#12479;&#12364;&#27531;&#12426;&#12414;&#12377;
#&#20363;:duplicated&#12467;&#12510;&#12531;&#12489;
TestData[!duplicated(TestData[, 1]), ]
Group Data1 Data2
1  Group5     1    10
2  Group4     2     9
7  Group2     7     4
10 Group3    10     1
########

###data.frame&#12398;&#35201;&#32004;&#12539;&#27083;&#36896;#####
#&#35201;&#32004;:summary&#12467;&#12510;&#12531;&#12489;
summary(TestData)
Group       Data1           Data2      
Group2:1   Min.   : 1.00   Min.   : 1.00  
Group3:1   1st Qu.: 3.25   1st Qu.: 3.25  
Group4:5   Median : 5.50   Median : 5.50  
Group5:3   Mean   : 5.50   Mean   : 5.50  
3rd Qu.: 7.75   3rd Qu.: 7.75  
Max.   :10.00   Max.   :10.00
#&#27083;&#36896;:str&#12467;&#12510;&#12531;&#12489;
str(TestData)
'data.frame':	10 obs. of  3 variables:
  $ Group: Factor w/ 4 levels "Group2","Group3",..: 4 3 3 4 3 3 1 4 3 2
$ Data1: int  1 2 3 4 5 6 7 8 9 10
$ Data2: int  10 9 8 7 6 5 4 3 2 1
########

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

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