0
グラフの目的のために今すぐ月にレベルがあるRのエラー。これはバグか論理的な欠陥ですか?
s <- c("January", "February", "March", "January", "March", "April")
t <- c(5, 3, 2, 3, 3, 7)
df1 <- as.data.frame(s)
df1[ , 2] <- t
(これは説明のサンプルです)データフレームを想像してみて、私は月によって統合したかったです。私は、コードとを記述する場合要約:
library(dplyr)
df1$s <- factor(df1$s, levels = month.name)
summary <- df1 %>% group_by(a) %>% summarize(Sales = sum(V2))
出力が正しいですが、順不同で:私は次の操作を行う場合
April 7
February 3
January 8
March 5
しかし、:
df1$s <- as.factor(df1$s)
levels(df1$s) <- c("January", "February", "March", "April")
Summary <- df1 %>% group_by(s) %>% summarize(Sales = sum(V2))
出力されます:
January 7
February 3
March 8
April 5
合計は間違っていますが、順序は正しいです。これはなぜでしょうか?
月ごとにアルファベット順に整理し、他の値を変更せずに月の列を削除するようなものです。
最初のコードチャンクを実行すると、正しい順序が得られます。私はあなたが 'group_by(a)'の代わりに 'group_by(s)'を意味すると仮定しています。 –
上書きするのではなく、 'df1 $ s2 < - as.factor(df1 $ s);を試してください。レベル(df1 $ s2)< - c( "1月"、 "2月"、 "3月"、 "4月") 'あなたはレベル割り当てを悪用していることがわかります。また、 't'と' summary'はよく使われる組み込み関数なので、これらのvar名と混同されるかもしれません。 – Frank