Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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
使用grep匹配字符串的变化模式_R_String_Pattern Matching - Fatal编程技术网

使用grep匹配字符串的变化模式

使用grep匹配字符串的变化模式,r,string,pattern-matching,R,String,Pattern Matching,我有一个data.frame,其中包括玉米杂交种和玉米自交系的试验数据。每个自交系在此数据框中都有一个唯一的条目。此外,我还有玉米杂交种,它们是两个自交系杂交的结果 我提取了自交系的所有条目和杂交种的所有条目,并将它们存储在两个单独的向量中。 矢量“自交系”包含每个自交系的编码条目名称: inbred <- c("F124", "L258", "F309", "P045", "D634", "D183-43", "F205-35") 每个杂交种都有两个自交系作为亲本,因此“杂交”矢量中的

我有一个data.frame,其中包括玉米杂交种和玉米自交系的试验数据。每个自交系在此数据框中都有一个唯一的条目。此外,我还有玉米杂交种,它们是两个自交系杂交的结果

我提取了自交系的所有条目和杂交种的所有条目,并将它们存储在两个单独的向量中。 矢量“自交系”包含每个自交系的编码条目名称:

inbred <- c("F124", "L258", "F309", "P045", "D634", "D183-43", "F205-35")
每个杂交种都有两个自交系作为亲本,因此“杂交”矢量中的每个串由第一个自交系组成,第一个自交系与第二个自交系之间用“x”隔开

我的目标是找出哪些自交系是任何杂交系的亲本组成部分。我对发生的次数不感兴趣。 最后,我想得到一个新的载体,它是至少一个杂交种的一部分,并将其用于主成分分析

我尝试使用grep()函数搜索向量“hybrid”中向量“inbred”中的任何字符串,并使用unique()函数排除所有多次出现的命中。我特别的问题是,这种模式总是变化的,因为我每次都试图在我的“杂交”载体中搜索不同的自交系

这是我用来获得唯一匹配的代码

unique.parents <- unique(grep(paste(inbred, collapse= "|"),hybrid, value=TRUE))
unique.parents
#[1] "F124xP045"    "F124xD183-43" "F309xP045"    "F205-35xL258" "F309xD634" 

unique.parents我假设,正如你所说,“杂交”向量中的每个字符串都由第一个自交系组成,第一个自交系与第二个自交系之间用“x”隔开”。
因此,您只需使用“x”作为拆分器拆分F1列表,取消列表,并获取唯一项

这很简单:

unique.parents <- unique(unlist(strsplit(hybrid,split="x")))
unique.parents
unique.parents <- unique(unlist(strsplit(hybrid,split="x")))