Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从具有按所需方式排列的列的表中隔离行_R_Dataframe_Ranking_Tabular - Fatal编程技术网

R 从具有按所需方式排列的列的表中隔离行

R 从具有按所需方式排列的列的表中隔离行,r,dataframe,ranking,tabular,R,Dataframe,Ranking,Tabular,我有一个选项卡描述的表,其中最后三列包含统计值,我只想检索以所需方式排列列的行。我感兴趣的行是那些列中的值按A_C>A_B>B_C排序的行 以下是该表的一个示例: marker chr A_B A_C B_C rs1000073 1 0.097328991622858 0.101954778294364 0.0155614929271569 rs1000283 1 0.194891573233045 0.0612572864045251 0.02874164618

我有一个选项卡描述的表,其中最后三列包含统计值,我只想检索以所需方式排列列的行。我感兴趣的行是那些列中的值按A_C>A_B>B_C排序的行

以下是该表的一个示例:

marker  chr A_B A_C B_C
rs1000073   1   0.097328991622858   0.101954778294364   0.0155614929271569
rs1000283   1   0.194891573233045   0.0612572864045251  0.0287416461802493
rs1000352   1   0.146693199204067   0.166583183464355   -0.00301950205401285
rs1000451   1   0.116693199204067   0.266583183464355   0.00401950205401285
因此,在本例中,我只想检索rs1000352和rs1000073行(实际表中有100多万行,但您明白了)

从那里,我将把感兴趣的行写入一个新的制表符删除文本文件(我知道如何做这部分)

有人对如何执行此操作有任何建议吗?

您的意思是(在使用
read.table
初始化
my.df
之后):

my.df.newa_B)和(A_B>B_C))
(…它似乎也返回
rs1000451
,但似乎是有意的。)

您的意思是(在使用
read.table
初始化
my.df
之后):

my.df.newa_B)和(A_B>B_C))

(…它似乎也返回
rs1000451
,但这似乎是有意的。)

如果要获取行的索引,可以选择:

df<- data.frame(marker = c('rs1000073','rs1000283','rs1000283', 'rs1000352'), A_B= c(0.097328991622858, 0.194891573233045, 0.146693199204067, 0.116693199204067), 
            A_C= c(0.101954778294364,0.0612572864045251,0.166583183464355,0.266583183464355), B_C = c(0.0155614929271569, 0.0287416461802493,  -0.00301950205401285,0.00401950205401285))
i<- which((df$A_C>df$A_B )& (df$A_B>df$B_C))
dfdf$B_C))

如果要获取行的索引,可以选择:

df<- data.frame(marker = c('rs1000073','rs1000283','rs1000283', 'rs1000352'), A_B= c(0.097328991622858, 0.194891573233045, 0.146693199204067, 0.116693199204067), 
            A_C= c(0.101954778294364,0.0612572864045251,0.166583183464355,0.266583183464355), B_C = c(0.0155614929271569, 0.0287416461802493,  -0.00301950205401285,0.00401950205401285))
i<- which((df$A_C>df$A_B )& (df$A_B>df$B_C))
dfdf$B_C))

a
数据。表
解决方案,语法糖!:

DT <- data.table(dt)
dt <- DT[(A_C>A_B) & (A_B>B_C)]
DT B_C)]
您甚至可以目视检查结果:

library(reshape2)
dtl <- melt(dt)
library(ggplot2)
ggplot(subset(dtl,variable!='chr'))+
  geom_point(aes(marker,value,color=variable),size=5)
ggplot(subset(dtl,variable!='chr'))+
  geom_point(aes(marker,value,color=reorder(variable,value)),size=5)
library(重塑2)

dtla
data.表格
solution,语法糖!:

DT <- data.table(dt)
dt <- DT[(A_C>A_B) & (A_B>B_C)]
DT B_C)]
您甚至可以目视检查结果:

library(reshape2)
dtl <- melt(dt)
library(ggplot2)
ggplot(subset(dtl,variable!='chr'))+
  geom_point(aes(marker,value,color=variable),size=5)
ggplot(subset(dtl,variable!='chr'))+
  geom_point(aes(marker,value,color=reorder(variable,value)),size=5)
library(重塑2)

dtl
read.table
write.table
?@Thomas这条评论对OP有什么帮助?“我知道怎么做这部分”?我想你错过了阅读问题。@agstudy我错过了“我知道如何做这部分”(re:writing),但OP仍然没有向我们展示他们实际尝试了什么。@Thomas说得好!OP从未显示他在上一个问题中尝试过的内容。
read.table
write.table
?@Thomas此评论对OP有何帮助?“我知道怎么做这部分”?我想你错过了阅读问题。@agstudy我错过了“我知道如何做这部分”(re:writing),但OP仍然没有向我们展示他们实际尝试了什么。@Thomas说得好!即使在他之前的问题中,OP也从未显示他受到了什么样的审判。