当我在某行中获得值时,我想选择数据框中的特定行。这些选定的行(加上初始选定的行)必须组成一个新的数据框,并且数据框名称必须是 =$Name
在初始选定的行中。
逻辑:
1 - 初始选定的行必须具有$FC
=> 0.7。
2 - 形成数据框的选定行必须$chr
= 初始选定行。
3 - 所选行必须$Position
在 5000 窗口内(与$Position
初始所选行相比)。
*3a) 在此示例中,行$Name
= BD22 不能包含在数据帧中BD13
,因为$Position
超出了窗口编号(5000 窗口到 3000 变化,因为$Position
= 500 直到$Position
= 5500)
下面是一个简化的例子:
我的输入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()}
但是Neigh1
和Neigh2
是空的...谢谢!