Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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_Loops_Conditional Statements_Bioinformatics - Fatal编程技术网

基于条件R使用循环提取行

基于条件R使用循环提取行,r,loops,conditional-statements,bioinformatics,R,Loops,Conditional Statements,Bioinformatics,我知道这个问题已经被问过好几次了,但我似乎无法让这个问题奏效 我有一个如下所示的数据帧: Slycopersicum_O_F30 Slycopersicum_O_F31 BGI_novel_G000585 4.085328 3.886572 BGI_novel_G000600 4.085328 3.886572 BGI_novel_G001004

我知道这个问题已经被问过好几次了,但我似乎无法让这个问题奏效

我有一个如下所示的数据帧:

                            Slycopersicum_O_F30 Slycopersicum_O_F31
BGI_novel_G000585            4.085328            3.886572
BGI_novel_G000600            4.085328            3.886572
BGI_novel_G001004            4.085328            3.886572
BGI_novel_G001146            4.085328            3.886572
BGI_novel_G001147            4.085328            3.886572
BGI_novel_G001673            4.085328            3.886572 
共有24列。现在我想提取符合条件的行,也就是

第1:21列的中间值应大于第22:24列的中间值。为此,我编写了以下循环:

    for (i in 1:nrow(OpenTable)){
  if (median(as.numeric(OpenTable[i,1:21])) >
      median(as.numeric(OpenTable[i,22:24]))) {
    print(i) -> list 
    OpenTable[i,1:24] = SLU
}}
因此,print函数工作正常,可以打印所有符合条件的行。然而,最后一行代码只提取了1行(我猜它们在每个循环中都会被更改) 有人能帮我弄清楚如何用符合条件的行填充数据框吗? 我希望我已经正确地陈述了这个问题,如果您需要更多信息,请让我知道。
干杯

我不会用循环来做这件事。从矢量化函数的角度考虑这一点应该更容易。以下是我的做法(如果您共享整个数据框,我将编辑帖子):

库(dplyr)
数据%>%
行()
滤器(
中位数(c_穿过(1:21))>中位数(c_穿过(2:24))
) %>%
解组()

我不会用循环来做这件事。从矢量化函数的角度考虑这一点应该更容易。以下是我的做法(如果您共享整个数据框,我将编辑帖子):

库(dplyr)
数据%>%
行()
滤器(
中位数(c_穿过(1:21))>中位数(c_穿过(2:24))
) %>%
解组()

如果您创建一个空列表:

my_list<-vector(mode = "list", length = (nrow(OpenTable))
for (i in 1:nrow(OpenTable)){
    if (median(as.numeric(OpenTable[i,1:21])) >
    median(as.numeric(OpenTable[i,22:24]))) {
    my_list[[i]]<-i
}
}
myu列表
中位数(如数字(OpenTable[i,22:24])){

我的列表[[i]]如果您创建一个空列表:

my_list<-vector(mode = "list", length = (nrow(OpenTable))
for (i in 1:nrow(OpenTable)){
    if (median(as.numeric(OpenTable[i,1:21])) >
    median(as.numeric(OpenTable[i,22:24]))) {
    my_list[[i]]<-i
}
}
myu列表
中位数(如数字(OpenTable[i,22:24])){
我的清单[[i]]