2016-10-30 2 views
0

私はggplotを使って2つの変数をお互いにプロットしたいと思っています。後で私は非線形フィットを使用したいが、私は完全に理解していないエラーメッセージに問題がある。私は同様の問題を抱えている他の人がいることを知ることができますが、答えを理解するのに十分明るくないかもしれません。stat_smooth - 可変長が異なる

私は4つの変数を含むデータセットを持っています。データセットにはNAはありません。

ggplot2を使用する回帰直線を使ってデータをプロットする必要があります。

メッセージ警告

::1:計算:「NEWDATA」が見つかり80行が、変数は 6702行2を持っていた簡単にするために、私は次の警告メッセージが表示されます簡単な線形回帰

library(ggplot2) 

qt_int <- c(404, 402, 426, 392, 418, 410) 
rr <- c(1000, 958, 982, 752, 824, 844) 
gender <- c('male','female','female','female','female','female') 
deltnr <- c(10445, 1022, 9122, 60, 246, 306) 
df = data.frame(deltnr, gender, qt_int, rr) 

p <- ggplot(df, aes(rr, qt_int)) 
p <- p + geom_point (size = 2) 
p <- p + stat_smooth(method = "lm", formula = qt_int ~ rr) 
p 

で始まりますstat_smooth()に失敗しました: argumenter antyder forskelligtアンタルrækker:80は、6 [EN:引数は、行の 異なる数示唆する:80、6]

私は数式を省略すると不思議なことには不思議なことですが(後で非線形フィットをしたいので、動作させる必要があります)

何が欠けていますか? stat_smooth()

+1

まあ、_私たちは 'int99'を欠いています。あなたのコードは再現できません)、_you_は 'ggplot'関数呼び出しの中で' $ 'を使っています。これは' ggplot'が実際に動作する方法ではありません。 – hrbrmstr

答えて

1

式は、変数の名前美的オブジェクト(xycolourなど)の名前を使用し、そしてべきではありません。 help("stat_smooth")

の式を参照してください。スムージング関数で使用する式。 'Y〜X'、 'Y〜ポリ(X、2)'、 'Y〜ログ(x)は'

OPは書きました:

p <- p + stat_smooth(method = "lm", formula = qt_int ~ rr) 

をしかし、式を書くための正しい方法はあります:

期待される出力を生成し
p <- p + stat_smooth(method = "lm", formula = y ~ x) 

enter image description here

+0

私は変数の命名に関してあなたの意見を持っています。私の目では同じように見えましたが、コードを書き直してデータのサブセットを含めました –

+0

これには多くの説明があります(例:http://stackoverflow.com/a/32543753/4132844)。データありがとう – scoa

+0

私の目を開いていただきありがとうございます。 stat_smoothが変数名を使用するのではなく、一般的な方法(y〜x)で数式を必要としていることはわかりませんでした。醜いデータには申し訳ありませんが、これは現実の生物学であり、醜いです;-)。今それは私のためにも働く。私は本当にあなたの助けに感謝します –

関連する問題