スーパーバイザー用に特殊な要約「マトリックス」を作成しようとしていますが、R にそれをクリーンで読みやすい形式でエクスポートしてもらいたいと考えています。そのため、基本的にゼロから作成し、プロジェクトに合わせて調整しています。私の問題は、作成されたデータ フレームをインポートされたデータ フレーム、特にヘッダーのように動作させる方法がわからないことです。
ヘッダー付きのインポートされたデータ フレームを処理し、特定の行を列番号ではなく名前で呼び出すのが最も快適です。
iris$Sepal.Length
with(iris,Sepal.Length)
iris['Sepal.Length']
ここで、データ フレーム (またはマトリックス、違いがまったくわかりません) を作成する場合は、次のことを試しました。
groups<-c("Group 1", "Group 2")
factors<-c("Fac 1", "Fac 2", "Fac 3","Fac 4", "Fac 5")
x<-1:10
y<-11:20
z<-21-30
data<-cbind(groups, factors, x, y, z)
names(data) #returns NULL
data$x #clearly doesn't return the column 'x' since the matrix 'data' has no names
data<-data.frame(cbind(groups, factors, x, y, z))
names(data) #confirms that there are header names
したがって、列 x、y、z を持つデータ フレームを作成しましたが、実際には、最初から作成された列はありません。データの行数がわかっている場合は、次のように簡単に実行できます。
data<-data.frame(1:10)
data$x<-x
data$y<-y
data$z<-z
空のデータ フレームを作成しようとしましたが、それは 1 つの要素であり、(1 より大きい長さの) ベクトルを追加しようとすると、エラーが発生します。
data<-data.frame(0)
data$x<-x #returns an error
何をすべきかについての私の最善の推測は、データの行数を調べるためにデータを 1 回通過することです (いくつかの要因レベルがあり、要約行列には考えられる要因の組み合わせごとに行があります)。次に、データ フレームを簡単に開始できます。
data<-data.frame(length(n)) #ここで、n はデータの行数になります
そして、必要な要約統計量ごとに個別のベクトルを作成し、それを ~$~ でデータ フレームに追加します。
私が試したもう 1 つの解決策は、行列を作成し、ループ内で計算しながら各要素を埋めることでした。適用ファミリがループよりも優れていることはわかっていますが、集計テーブルを自分のニーズに合わせて調整するには、適用関数を実行してから、個々のデータを取得する必要があります。
means<-with(iris,tapply(iris[,4],Species,mean))
means[1] #This returns the species and the mean petal width. What I need is the numeric part of this, as I will have my own headers, or possibly a separate summary table for each species.
適用出力から数値情報を抽出する方が、必要な統計を計算するために独自のループを構築するよりも優れているかどうかはわかりません。これは、最初にグループ (2 回の実行) で並べ替えられる入れ子になったループであり、次に因子 (5 回の実行) で実行される内部ループで、合計 10 回のデータの実行になります。空の martix を作成し、計算時にデータを適切なセルに保存することを考えていました。私の問題は、マトリックス内の特定の行を呼び出すことです。私が試してみました:
m<-matrix(0,ncol=5)
m[1,1]<-'Groups'
m[1,2]<-'Factors'
m[1,3]<-'Mean.x'
m[1,4]<-'Mean.y'
m[1,5]<-'Mean.z'
names(m) #Returns NULL
私の望ましい出力は次のようになります。
Groups Factors Mean.x Mean.y Mean.z
Group 1 Fac 1
Group 1 Fac 2
Group 1 Fac 3
など、グループと要因のすべての組み合わせについて。