R 如果返回“;条件具有长度>;1且仅使用第一个元素“;

R 如果返回“;条件具有长度>;1且仅使用第一个元素“;,r,R,对于以下代码,我得到消息“条件的长度大于1,并且只使用第一个元素”: 我猜这里IF只看“==”操作符,但实际上我感兴趣的是IF看整个表达式,由“&”(AND)逻辑操作符给出。我想我犯了一个语法错误,但到目前为止我还没有弄清楚是哪个错误。试试: if(all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE和is.na(PSIBl\u Tax\u Gene$GeneID)==FALSE)) (另请参见向量逻辑运算符“any”) 问题在于,您试图调节真/假值向量:

对于以下代码,我得到消息“条件的长度大于1,并且只使用第一个元素”:

我猜这里IF只看“==”操作符,但实际上我感兴趣的是IF看整个表达式,由“&”(AND)逻辑操作符给出。我想我犯了一个语法错误,但到目前为止我还没有弄清楚是哪个错误。

试试:

if(all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE和is.na(PSIBl\u Tax\u Gene$GeneID)==FALSE))

(另请参见向量逻辑运算符“any”)

问题在于,您试图调节真/假值向量:

如果(c(真、假、真、真……)显示“是”)

这就是信息。看看你跑的时候会发生什么

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)

您应该得到真/假值的向量。您需要查看其中一个:

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)[x]==TRUE

其中x是您感兴趣的向量元素的索引,或者您可以将整个向量与真/假值向量进行比较

all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)=rep(TRUE,length(PSIBl\u Tax\u Gene$CDS\u Acc1)))

总之

全部(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE))

尝试:

if(all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE和is.na(PSIBl\u Tax\u Gene$GeneID)==FALSE))

(另请参见向量逻辑运算符“any”)

问题在于,您试图调节真/假值向量:

如果(c(真、假、真、真……)显示“是”)

这就是信息。看看你跑的时候会发生什么

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)

您应该得到真/假值的向量。您需要查看其中一个:

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)[x]==TRUE

其中x是您感兴趣的向量元素的索引,或者您可以将整个向量与真/假值向量进行比较

all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)=rep(TRUE,length(PSIBl\u Tax\u Gene$CDS\u Acc1)))

总之

全部(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE))

尝试:

if(all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE和is.na(PSIBl\u Tax\u Gene$GeneID)==FALSE))

(另请参见向量逻辑运算符“any”)

问题在于,您试图调节真/假值向量:

如果(c(真、假、真、真……)显示“是”)

这就是信息。看看你跑的时候会发生什么

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)

您应该得到真/假值的向量。您需要查看其中一个:

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)[x]==TRUE

其中x是您感兴趣的向量元素的索引,或者您可以将整个向量与真/假值向量进行比较

all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)=rep(TRUE,length(PSIBl\u Tax\u Gene$CDS\u Acc1)))

总之

全部(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE))

尝试:

if(all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE和is.na(PSIBl\u Tax\u Gene$GeneID)==FALSE))

(另请参见向量逻辑运算符“any”)

问题在于,您试图调节真/假值向量:

如果(c(真、假、真、真……)显示“是”)

这就是信息。看看你跑的时候会发生什么

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)

您应该得到真/假值的向量。您需要查看其中一个:

is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)[x]==TRUE

其中x是您感兴趣的向量元素的索引,或者您可以将整个向量与真/假值向量进行比较

all(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)=rep(TRUE,length(PSIBl\u Tax\u Gene$CDS\u Acc1)))

总之

全部(is.na(PSIBl\u Tax\u Gene$CDS\u Acc1)==TRUE))


如果您的逻辑表达式导致长度大于1的向量,则需要使用
ifelse
函数。也许您希望将
any
all
添加到查询中。我以前遇到过这个问题,尝试使用
ifelse
处理向量,而不是
if
我以前考虑过ifelse,并且,通过阅读ifelse的描述,我认为这不是我需要的。首先看看这个答案:如果它不能回答你的问题,请考虑让我们知道代码大小> psiBLY-TasthEngult$CDSYACC1和<代码> PSIBLY-TASXY基因$ GeNID/<代码>如果您的逻辑表达式导致长度为1的向量,则需要<代码> IFORES/COD>函数。也许您正在寻找添加<代码> < <代码> >或<代码>所有< /代码>到您的查询。在此之前,尝试使用
ifelse
来处理向量,而不是
if
我之前考虑过ifelse,并且,通过阅读ifelse的描述,我认为这不是我需要的,请考虑让我们知道代码大小> psiBLY-TasthEngult$CDSYACC1和<代码> PSIBLY-TASXY基因$ GeNID/<代码>如果您的逻辑表达式导致长度为1的向量,则需要<代码> IFORES/COD>函数。也许您正在寻找添加<代码> < <代码> >或<代码>所有< /代码>到您的查询。在此之前,尝试使用
ifelse
来处理向量,而不是
if
我之前考虑过ifelse,并且,通过阅读ifelse的描述,我认为这不是我需要的,请考虑让我们知道代码大小> psiBLY-TasthEngult$CDSYACC1和<代码> PSIBLY-TASXY基因$ GeNID/<代码>如果您的逻辑表达式导致长度为1的向量,则需要<代码> IFORES/COD>函数。也许您正在寻找添加<代码> < <代码> >或<代码>所有< /代码>到您的查询。之前,请尝试使用
ifelse
处理向量,而不是
if
我之前考虑过ifelse,并且,通过阅读
if (is.na(PSIBl_Tax_Gene$CDS_Acc1)==TRUE & is.na(PSIBl_Tax_Gene$GeneID)==FALSE)