【发布时间】:2014-05-13 10:13:38
【问题描述】:
当我在某行中获得值时,我想选择数据框中的特定行。这些选定的行(加上初始选定的行)必须组成一个新的数据框,并且数据框名称必须是 = $Name 在初始选定的行中。
逻辑:
1 - 初始选定的行必须有 $FC=> 0.7。
2 - 形成数据框的选定行必须$chr = 初始选定行。
3 - 所选行必须在 5000 窗口内具有 $Position(与初始所选行中的 $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 是空的...
谢谢!
【问题讨论】: