2016-11-17 24 views
0

10の時点(行)で300個の変数(列)を取ります。各変数の温度はAとFです。 2 A + Fのための時点1の行ので、ここでforループ内でデータの複数のサブセットを実行する方法

は私の再現性の一例である

Timepoint <- c('1','1','2','2','3','3') 
Temperature <- c('A','F','A','F','A','F') 
Cholesterol <- c('1','2','3','2','3','4') 

data.frame(Timepoint,Temperature,Cholesterol) 

にこれは、私は線を引くしたいと思い、私の実際のデータ

structure(list(Timepoint = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 
    5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 13L, 13L, 25L, 25L), 
    Temperature = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
    1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("A", 
    "F"), class = "factor"), Concentration.of.chylomicrons = c(1.29e-11, 
    1.25e-11, 1.02e-11, 1.1e-11, 1.08e-11, 1.3e-11, 1.28e-11, 
    1.26e-11, 1.06e-11, 1.32e-11, 8.85e-12, 1.21e-11, 8.83e-12, 
    1.08e-11, 1.35e-11, 1.12e-11, 8.99e-12, 1.08e-11, 9.55e-12, 
    1.04e-11, 0, 1.01e-11), Total.lipids = c(0.00268, 0.0026, 
    0.00208, 0.00225, 0.00222, 0.0027, 0.00268, 0.0026, 0.00219, 
    0.00273, 0.0018, 0.00247, 0.00179, 0.00221, 0.00276, 0.00229, 
    0.00182, 0.00222, 0.00195, 0.00212, 0, 0.00204), Phospholipids = c(0.000224, 
    0.000223, 0.000145, 0.00016, 0.000157, 0.000211, 0.00023, 
    0.000211, 0.000165, 0.000224, 0.000109, 0.00018, 0.000113, 
    0.000163, 0.000175, 0.000177, 0.000122, 0.000173, 0.000127, 
    0.000156, 0, 0.000138)), .Names = c("Timepoint", "Temperature", 
"Concentration.of.chylomicrons", "Total.lipids", "Phospholipids" 
), class = "data.frame", row.names = c(NA, -22L)) 

のサンプルですグラフt o各変数が時間とともにどのように変化するかを示します。この折れ線グラフでは、私はAとBの行は、私は、次のRコード

plot(DATA$Timepoint[DATA$Temperature=="F"],DATA$variable[DATA$Temperature=="F"]) 

lines(DATA$Timepoint[DATA$Temperature=="F"],DATA$Cvariable[TempMline$Temperature=="A"]) 

これは、プロットを与えると、これを行うために管理している

を描くことがしたいと思いますどのように独立したとの時間を持つ変数変更し、 + F.

各温度Aの線Iは、データをサブセットも

ループコマンドを書き込むために[]使用に問題を抱えているが、私は、各変数のグラフを描画するためのループコマンドを記述しようとしてい

これは私の試みです

lnames <- names(DATA) 
classes<-sapply(DATA,class) 

for(name in lnames[classes == 'numeric']) { 

plot(DATA$Timepoint[DATA$Temperature=="F"],DATA$[,name][DATA$Temperature=="F"]) 
lines(DATA$Timepoint[DATA$Temperature=="F"],DATA$[,name][TempMline$Temperature=="A"]) } 
+1

これを読んで、かつ再現性の例をアップロードしてください。 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

@ M.Siwikどのようにデータフレームをアップロードできますか? – NLM09

+0

コンソール上のdput(データフレームの名前)をコピーして貼り付けます。 –

答えて

1

これはあなたが探しているものですか?私はそれがループの終わりなので、最後のグラフのみを表示します。 RStudioを使用している場合は、プロットビューアの左右の矢印キーを切り替えることができます。

enter image description here

ここでプロットし、ループのコードです:

# subset based on temperatures A and F 
a_df <- subset(df, Temperature == "A") 
f_df <- subset(df, Temperature == "F") 

# loop from columns 3:5 (or for the number of variables you have) 
for (i in 3:5) { 
     plot(a_df[, 1], 
      a_df[, i], 
      type = "l", 
      ylab = colnames(a_df[i]), 
      xlab = "Timepoint", 
      lwd = 2, 
      col = "blue") 
     lines(f_df[, 1], 
      f_df[, i], 
      type = "l", 
      lwd = 2, 
      col = "red") 
     legend("bottomleft", 
      col = c("blue", "red"), 
      legend = c("Temperature A", "Temperature F"), 
      lwd = 2, 
      y.intersp = 0.5, 
      bty = "n") 
} 
+0

言葉は私の感謝を表すことはできません。あなたのために多くのおかげで親切な助け – NLM09

+0

簡単な質問グラフ上の特定のデータポイントは、プロット領域の外にあります。すべての点がプロットされるように、グラフのスケールを調整するにはどうすればよいですか? – NLM09

+0

遅れて申し訳ありません。私はそれが 'xlim = c(x、y)とylim = c(x、y)'だと信じています。 'xlim'はあなたのx軸が取ることができる範囲を設定します。 –

関連する問題