2017-11-07 6 views
1

睡眠中の患者に由来するEEGを使用しています。私はC3-M2とC4-M1の平均値を必要とするので、私はベクトル作成 R - 1つのベクターを条件別に2つの別個のベクターに分ける(症例/対照患者)

ID C3-M2 C4-M1 Disorder 
12  347 325 Control 
13  397 346 Bipolar 
14  368 363 Control 
15  370 379 Control 
16  368 310 Bipolar 

fast_spin_numb <- c((`C3-M2`+ `C4-M1`)/2) 

fast_spin_numbをため、5が含まれている必要があり は今、私はこのような表を持っています値。

今私はfast_spin_bipoがコントロールする唯一の手段だけ双極性患者の手段と fast_spin_contを含める必要がある2つの別々のベクターを作成したいと思います。

私は

split(fast_spin_numb, disorder == "control", drop = FALSE) 

でそれを試してみましたが、私は新しいベクターに自動的に番号を入れてどのように解決策を見つけることができませんでした。

は同様に私はこれを試してみました:私は、少なくともいくつかのテストを実行することができます

tapply(fast_spin_numb, disorder, shapiro.test)

を。しかし、それはqqplot(コントロールの場合のみ)を作成するのに役立ちません。

ありがとうございました!

答えて

0

byは、オブジェクト指向ラッパーtapplyです。このオブジェクト指向ラッパーは、関数からの出力のリストを返すために、1つまたは複数の係数でデータフレームをサブセット化できます。以下は、指定されたベクトルのリストを返します。

データ

txt = ' ID "C3-M2" "C4-M1" Disorder 
12  347 325 Control 
13  397 346 Bipolar 
14  368 363 Control 
15  370 379 Control 
16  368 310 Bipolar' 

df <- read.table(text=txt, header=TRUE) 

コード

mean_vectors <- by(df, df$Disorder, FUN=function(i) (i$`C3.M2`+ i$`C4.M1`)/2) 

mean_vectors$Control 
# [1] 336.0 365.5 374.5 
mean_vectors$Bipolar 
# [1] 371.5 339.0 
+0

これはRでby'利用不足を促進するための私の最近の、継続的なキャンペーン 'に追加します:[1](https://でのstackoverflow (2)(https://stackoverflow.com/a/47128403/1422451)、[3](https://stackoverflow.com/a/47027343/1422451)、[4 ](https://stackoverflow.com/a/46836601/1422451)、[5](https://stackoverflow.com/a/46839140/1422451) – Parfait

+0

それは動作します!どうもありがとう!! – ElenaNick

+0

素晴らしい!喜んで助けてください。 [Thanks](https://meta.stackexchange.com/a/5235)と言ってStackOverflowの方法を忘れないでください! – Parfait

関連する問題