Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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_Substring - Fatal编程技术网

R 打印两列的子字符串匹配的行

R 打印两列的子字符串匹配的行,r,substring,R,Substring,我想grep这些行是列V1中之前的字符串,V2对于同一行是类似的。例如,在下面的示例中,第1行就是这种情况 我想我需要使用gsub与==gsub(“.*$”,“,”,out)组合使用 >头部(向外) V1 V2 V3 V4 1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.datatissure 0.261887741880618 2 hsa-miR-99b-3p.数据组织hsa-miR-99b-5p.数据组织0.979410208303266 3 hsa-mi

我想grep这些行是列
V1
之前的字符串,
V2
对于同一行是类似的。例如,在下面的示例中,第1行就是这种情况

我想我需要使用
gsub
与==
gsub(“.*$”,“,”,out)组合使用

>头部(向外)
V1 V2 V3 V4
1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.datatissure 0.261887741880618
2 hsa-miR-99b-3p.数据组织hsa-miR-99b-5p.数据组织0.979410208303266
3 hsa-miR-99b-3p.数据组织hsa-miR-99b-5p.数据血清0.266705152258623
4 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.datatissure 0.227329471105902
5 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.dataSerum 0.944112218530823
6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.2002533634838

我们可以试试
sub
。匹配模式点(
\\.
),后跟零个或多个字符(
*
),并将其替换为列“V1”和“V2”的
'
,然后使用
==
获取逻辑索引并对行进行子集设置

v1 <- sub('\\..*', '', out$V1)
v2 <- sub('\\..*', '', out$V2)

out[v1==v2,]
#                      V1                        V2        V3   V4
#1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.dataTissue 0.2618877 <NA>
#6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.2002534 <NA>
v1
v1 <- sub('\\..*', '', out$V1)
v2 <- sub('\\..*', '', out$V2)

out[v1==v2,]
#                      V1                        V2        V3   V4
#1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.dataTissue 0.2618877 <NA>
#6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.2002534 <NA>