forコマンドの処理毎の結果をlist、data.frameまたはvectorに保存するパッケージです。特にlistに保存する「magic_result」コマンドがオススメです。
手間がかからず思い通りにデータを操ることができるので、思わず笑みがこぼれてしまいます。
使用方法はforコマンドの処理内容を「magic_for」コマンドと「magic_result」「magic_result_as_dataframe」「magic_result_as_vector」のいずれかのコマンドで囲うだけです。
<例>
magic_for() forコマンドの処理内容 magic_result() or magic_result_as_dataframe() or magic_result_as_vector()
非常に便利なパッケージです。「magic_for」コマンドの内容を確認するだけでも参考になります。
・magicforのGitHub
https://github.com/hoxo-m/magicfor
パッケージバージョンは0.0.0.9000。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("devtools") devtools::install_github("hoxo-m/magicfor")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("magicfor")
###データ例の作成#####
n <- 100
TestData <- data.frame(Group = sample(paste0("Group", 1:5), n, replace = TRUE),
Data1 = rnorm(n),
Data2 = rnorm(n) + rnorm(n) + rnorm(n),
Data3 = sample(1:5, n, replace = TRUE),
Data4 = sample(LETTERS[1:26], n, replace = TRUE))
#######
#forコマンド前に実行:magic_forコマンド
magic_for()
#処理
for(i in seq(unique(TestData[, 4]))) {
#Data3の数値でTestDataを抽出
Data <- subset(TestData, TestData[, 4] == i)
print(Data)
#Data4の文字でTestDataを抽出
#抽出内容を作成
ExCharData <- sample(LETTERS[1:26], i, replace = TRUE)
print(ExCharData)
#抽出
Char <- subset(TestData, TestData[, 5] %in% ExCharData)
print(Char)
}
#listで結果を取得:magic_resultコマンド
TestResult <- magic_result()
#内容を確認
str(TestResult)
List of 3
$ Data :List of 5
..$ :'data.frame': 26 obs. of 5 variables:
#省略
$ ExCharData:List of 5
..$ : chr "T"
#省略
$ Char :List of 5
..$ :'data.frame': 7 obs. of 5 variables:
#data.frameで結果を取得:magic_result_as_dataframeコマンド
TestResultDF <- magic_result_as_dataframe()
#内容を確認
TestResultDF
i Data ExCharData Char
1 1 c(2, 1, .... T c(4, 1, ....
2 2 c(1, 5, .... K, H c(4, 5, ....
3 3 c(2, 2, .... R, D, E c(1, 5, ....
4 4 c(1, 3, .... J, D, R, C c(1, 5, ....
5 5 c(5, 4, .... E, O, O,.... c(2, 5, ....
#vectorで結果を取得してlistに格納:magic_result_as_vectorコマンド
TestResultVec <- magic_result_as_vector()
str(TestResultVec)
List of 3
$ Data : Named num [1:500] 2 1 2 3 5 1 3 2 1 2 ...
..- attr(*, "names")= chr [1:500] "Group1" "Group2" "Group3" "Group4" ...
$ ExCharData: chr [1:15] "T" "K" "H" "R" ...
$ Char : Named num [1:335] 4 1 5 3 2 ...
..- attr(*, "names")= chr [1:335] "Group1" "Group2" "Group3" "Group4" ...
[/code]
少しでも、あなたのウェブや実験の解析が楽になりますように!!