-1

ある行で値を取得したときに、データフレーム内の特定の行を選択したいと思います。これらの選択された行 (および最初に選択された行) は新しいデータフレームを構成する必要があり、データフレーム名$Nameは最初に選択された行で = である必要があります。

ロジック:

$FC1 - 最初に選択された行は=> 0.7 でなければなりません。

2 - データフレームを形成するために選択された行は$chr、最初に選択された行に = する必要があります。

3 - 選択された行は$Position5000 ウィンドウ内にある必要があります ($Position最初に選択された行と比較して)。

*3a) この例では、行= BD22はウィンドウ番号 (5000 ウィンドウから 3000までは= 500 から= 5500 まで変化する)を超えているため、データフレーム$Nameに含めることはできません。BD13$Position$Position$Position

上記の簡単な例に従います。

私の入力データinputフレーム:

 Name   FC   chr   Position 
 BD10   0.1  chr1    1000
 BD11   0.1  chr2    1000
 BD12   0.2  chr3    2000
 BD13   0.7  chr3    3000
 BD14   0.4  chr3    4000
 BD22   0.1  chr3    7000
 BD23   0.2  chr4    1000

この例では、出力として名前行を持つデータフレームを期待しています = BD13:

Name   FC   chr   Position
BD12   0.2  chr3   2000
BD13   0.7  chr3   3000
BD14   0.4  chr3   4000

その後、次のように構成された各データフレームをプロットしたいと思います。

pdf(BD13.pdf)
plot(BD13$Name, BD13$FC, main="BD13",
   xlab="Name", ylab="FC")
dev.off()

私が試してみました:

out <- subset(input, FC >= 0.7)
out$startw <- (out$Position - 2500)
out$endw <- (out$Position + 2500)


library(plyr)
lvl <- dlply(out, .(Name))

for (i in 1:length(lvl)) {
  Neigh1 <- subset(input, input$Position >= lvl[i]$startw & lvl[i]$chr == input$chr)
  Neigh2 <- subset(input, input$Position <= lvl[i]$endw & lvl[i]$chr == input$chr)
  Neight <- rbind(Neigh1, Neigh2)

pdf(sprintf("%s.pdf", [i]))
boxplot(Neigh$Name, Neigh$FC, xlab=[i], ylab="FC", main="[i]")
dev.off()}

しかしNeigh1Neigh2空です...ありがとう!

4

1 に答える 1