我有以下名为data.frame
的{{1}}:
我想只选择best100_gene
的行。我尝试了以下命令:
Data_PCA$ind$coord[, 2] < 0
但它不起作用!我尝试了其他几个选项,但它们也没有用。
答案 0 :(得分:1)
best100_gene <- data.frame(
SYMBOL=c("A", "b", "c", "d", "e"),
Data_PCA_contrib=c(.26,.25,.36,.11,.35),
"Data_PCA$ind$coord[, 2]"=c(12,15,-11,-11,-11)
)
以下是基于屏幕截图的示例数据:
SYMBOL Data_PCA_contrib Data_PCA.ind.coord...2. 1 A 0.26 12 2 b 0.25 15 3 c 0.36 -11 4 d 0.11 -11 5 e 0.35 -11
这是一种方式,我强烈建议使用疯狂的列名:
best100_gene[best100_gene[3] < 0, ]
SYMBOL Data_PCA_contrib Data_PCA.ind.coord...2. 3 c 0.36 -11 4 d 0.11 -11 5 e 0.35 -11
这是另一种方式:
best100_gene[best100_gene$Data_PCA.ind.coord...2. < 0, ]
SYMBOL Data_PCA_contrib Data_PCA.ind.coord...2. 3 c 0.36 -11 4 d 0.11 -11 5 e 0.35 -11
这是另一种方式:
good_names <- c("symbol", "pca_contrib", "pca_coord")
colnames(best100_gene) <- good_names
best100_gene[best100_gene$pca_coord<0, ]
symbol pca_contrib pca_coord 3 c 0.36 -11 4 d 0.11 -11 5 e 0.35 -11
答案 1 :(得分:1)
甚至很难创建像你这样的数据。如果我们想要创建名称包含pip install facebook-sdk
和check.names=FALSE
的数据框,并使用反向标记$
来保护奇怪的名称,我们需要[
...
`
这是你最想要的......
best100_gene <- data.frame(
SYMBOL=c("A", "b", "c", "d", "e"),
Data_PCA_contrib=c(.26,.25,.36,.11,.35),
`Data_PCA$ind$coord[, 2]`=c(12,15,-11,-11,-11),check.names=FALSE)
您也可以使用
best100_gene[best100_gene[,"Data_PCA$ind$coord[, 2]"]<0,]
或
subset(best100_gene,`Data_PCA$ind$coord[, 2]`<0)
或
with(best100_gene,best100_gene[`Data_PCA$ind$coord[, 2]`<0,])
最好将列名重命名为更容易处理的内容,例如
dplyr::filter(best100_gene,`Data_PCA$ind$coord[, 2]`<0)
或者,更好的是,在您的工作流程中再往前看,看看奇怪的名字来自哪里。