1

次のデータフレームがあります。

id<-c(1,2,3,4,1,1,2,3,4,4,2,2)
period<-c("first","calib","valid","valid","calib","first","valid","valid","calib","first","calib","valid")
df<-data.frame(id,period)

タイピング

table(df) 

結果は

period
id  calib first valid
1     1     2     0
2     2     0     2
3     0     0     2
4     1     1     1

「dcast」を使用して同じ結果を得て、新しいデータ フレームとして保存する方法はありますか?

4

1 に答える 1

1

はい、方法があります:

library(reshape2)
dcast(df, id ~ period, length)
Using period as value column: use value.var to override.
  id calib first valid
1  1     1     2     0
2  2     2     0     2
3  3     0     0     2
4  4     1     1     1

ちょうど入力することもできdcast(df, id ~ period)lengthデフォルトでも選択されます。私が見ることができるように、あなたはあなたの別の質問でこれを見つけようとしました。なしの拡張ソリューションdcastは次のようになります。

df <- data.frame(unclass(table(df)))
df$ID <- rownames(df)
df
  calib first valid ID
1     1     2     0  1
2     2     0     2  2
3     0     0     2  3
4     1     1     1  4
于 2012-07-22T09:22:07.870 に答える