我有一个表格
的数据框> geneRows[1:3,]
Probe/gene logFC CI.L CI.R AveExpr t P.Value adj.P.Val
17656 220307_at -0.09017596 -0.4395575 0.25920561 6.104288 -0.5992736 0.5662047 1
37517 220307_at 0.08704844 -0.2613434 0.43544028 6.104288 0.5801327 0.5784053 1
57376 220307_at -0.03501474 -0.1267764 0.05674688 6.152467 -0.7816350 0.4409881 1
B gene GSE Group1 Group2 shape color
17656 -5.639256 CD244 GSE2461 Male Female x-open black
37517 -5.978691 CD244 GSE2461 ulcerative colitis irritable bowel syndrome x-open black
57376 -5.141940 CD244 GSE27887 nonlesional skin lesional skin x-open black
我希望对此进行子集化,以便在CI.R
列为特定值时可以访问CI.L
列。例如,我已尝试
geneRows$CI.R[geneRows$CI.L == -0.4395575]
但是我回来了numeric(0)
,意思是一个空的向量。但是当我在样本数据集上尝试它时,比如
mtcars$mpg[mtcars$carb==8]
它运作得很好。它们是相同的数据类型和所有内容,那么这里的问题是什么?
背景
我正在创建要添加到plotly
地块的线条。
line <- list(
type = "line",
line = list(color = "grey"),
width = 0.2,
xref = "x",
yref = "y"
)
lines <- list()
for (i in geneRows$CI.L) {
line[["x0"]] <- i
line[["x1"]] <- #here
lines <- c(lines, list(line))
}
每行需要从CI.L
到CI.R
。我试图通过起始点从表中获得结束点x1
。
答案 0 :(得分:0)
您的数字可能比打印时更精确。例如:
> -0.4395575 == -0.4395575
[1] TRUE
> -0.4395575 == -0.4395575001
[1] FALSE
您可以使用all.equal
,默认情况下,其容差为1.5e-8但可以调整。
> all.equal(-0.4395575, -0.4395575001)
[1] TRUE
> all.equal(-0.4395575, -0.4395575001, tolerance = 1e-10)
[1] "Mean relative difference: 2.275015e-10"