我在reshape
包中遇到了cast
/melt
中的奇怪行爲。如果我投了data.frame
,然後試着melt
吧,melt
出來說錯了。手動取消演員data.frame
中的「df.melt」類可以正確融化。熔化投射數據幀會產生錯誤的輸出
有誰知道這是否是有意的行爲,如果是這樣,當你想要它時,用例是什麼?
一個小的代碼示例,顯示的行爲:
> df <- data.frame(type=c(1, 1, 2, 2, 3, 3), variable="n", value=c(71, 72, 68, 80, 21, 20))
> df
type variable value
1 1 n 71
2 1 n 72
3 2 n 68
4 2 n 80
5 3 n 21
6 3 n 20
> df.cast <- cast(df, type~., sum)
> names(df.cast)[2] <- "n"
> df.cast
type n
1 1 143
2 2 148
3 3 41
> class(df.cast)
[1] "cast_df" "data.frame"
> melt(df.cast, id="type", measure="n")
type value value
X.all. 1 143 (all)
X.all..1 2 148 (all)
X.all..2 3 41 (all)
> class(df.cast) <- "data.frame"
> class(df.cast)
[1] "data.frame"
> melt(df.cast, id="type", measure="n")
type variable value
1 1 n 143
2 2 n 148
3 3 n 41
我很困惑。你爲什麼要熔化已經是長格式的df?而你使用'cast'也沒有多大意義。通常你在使用'melt'之後使用它*。 – Harlan 2010-03-03 22:19:07
請詳細解釋一下你想要做什麼以及你的預期結果。 – 2010-03-04 03:06:27