Rにデータフレームがあり、「factor1」と「factor2」の2列を因子として使用し、上記の因子の各ペアごとに他のすべての列の平均値を計算する必要があるとします。以下のコードを実行すると、最後の行で次の警告が表示されます。
Warning messages:
1: In split.default(seq_along(x), f, drop = drop, ...) :
data length is not a multiple of split variable
...
なぜそれが起こっているのですか?それを正しくするにはどうすればよいですか? ありがとう。
これが私のコードです:
# Create data frame
myDataFrame <- data.frame(factor1=c(1,1,1,2,2,2,3,3,3), factor2=c(3,3,3,4,4,4,5,5,5), val1=c(1,2,3,4,5,6,7,8,9), val2=c(9,8,7,6,5,4,3,2,1))
# Split by 2 columns (factors)
splitDataFrame <- split(myDataFrame, list(myDataFrame$factor1, mydataFrame$factor2))
# Calculate mean value for each column per each pair of factors
splitMeanValues <- lapply(splitDataFrame, function(x) apply(x, 2, mean))
# Combine back to reduced table whereas there is only one value (mean) per each pair of factors
MeanValues <- unsplit(splitMeanValues, list(unique(myDataFrame$factor1), unique(mydataFrame$factor2)))
EDIT1: データ フレームの作成を追加 (上記参照)