如何解决R - grepl 警告:参数“模式”的长度 > 1,并且只会使用第一个元素
我是 R 的新手,并且收到了这些警告消息。虽然它似乎有效,但我仍然很担心。从行到行,我想在一个或多个字符的列中搜索另一列中的一个或多个字符。然后我做相反的事情。我做相反的原因是一列可能比我正在搜索的另一列有更多的字符。如果条件为真(grepl 搜索找到匹配项),那么我创建两个新列,如果不是真的然后运行第二个但类似的 ifelse 语句。四个相关列都在同一行数据中的示例可以是
EAF= TGTGTGT; OA=交流电;参考 = A; ALT = AGTGTG,ATGTGT
请看下面:
ifelse((grepl(data$EA,data$REF) || grepl(data$REF,data$EA)) || (grepl(data$OA,data$ALT) || grepl(data$ALT,data$OA)),{data$new_gwas_a1[data$EAF>0.4 & data$EAF<0.6] <- data$REF[data$EAF>0.4 & data$EAF<0.6];
data$new_gwas_a2[data$EAF>0.4 & data$EAF<0.6] <- data$ALT[data$EAF>0.4 & data$EAF<0.6]},ifelse(grepl(data$OA,data$OA) || (grepl(data$EA,data$EA)),{data$new_gwas_a2[data$EAF>0.4 & data$EAF<0.6] <- data$REF[data$EAF>0.4 & data$EAF<0.6];
data$new_gwas_a1[data$EAF>0.4 & data$EAF<0.6] <- data$ALT[data$EAF>0.4 & data$EAF<0.6]},))
[1] "AGTGTG,ATGTGT" 警告信息: 1:在 grepl(data$EA,data$REF) 中: 参数 'pattern' 的长度 > 1,并且只会使用第一个元素 2:在 grepl(data$REF,data$EA) 中: 参数 'pattern' 的长度 > 1,并且只会使用第一个元素 3:在 grepl(data$OA,data$ALT) 中: 参数 'pattern' 的长度 > 1,并且只会使用第一个元素 4:在 grepl(data$ALT,data$OA) 中: 参数 'pattern' 的长度 > 1,并且只会使用第一个元素 5:在 grepl(data$OA,data$REF) 中: 参数 'pattern' 的长度 > 1 并且只使用第一个元素
任何帮助将不胜感激!
谢谢大家的回复!这是一个与上面类似的简单示例。 e 和 f 是目标,它似乎有效,但是当我在 Bash 终端中将代码作为可执行的 R 脚本运行时,它会执行相同的操作,但也会发出警告消息。
> a <- c("TGTGTGT")
> b <- c("AC")
> c <- c("A")
> d <- c("AGTGTG,ATGTGT")
> ifelse((grepl(a,c) || grepl(c,a)) || (grepl(b,d) || grepl(d,b)),{e <- c; f <- d},ifelse(grepl(b,b) ||
(grepl(a,a)),{f <- c; e <- d},))
> e
[1] "AGTGTG,ATGTGT"
> f
[1] "A"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。