我想要在.
列中V1
之前的字符串为grep,而同一行的V2
类似。例如,在下面的例子中,第1行就是这种情况。
我想我需要以某种方式使用gsub
与== gsub( ".*$", "", out )
> head(out)
V1 V2 V3 V4
1 hsa-miR-99b-5p.dataSerum hsa-miR-99b-5p.dataTissue 0.261887741880618 <NA>
2 hsa-miR-99b-3p.dataTissue hsa-miR-99b-5p.dataTissue 0.979410208303266 <NA>
3 hsa-miR-99b-3p.dataTissue hsa-miR-99b-5p.dataSerum 0.266705152258623 <NA>
4 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.dataTissue 0.227329471105902 <NA>
5 hsa-miR-99b-3p.dataSerum hsa-miR-99b-5p.dataSerum 0.944112218530823 <NA>
6 hsa-miR-99b-3p.dataSerum hsa-miR-99b-3p.dataTissue 0.20025336348038 <NA>
答案 0 :(得分:1)
我们可以尝试sub
。匹配模式点(\\.
),后跟零个或多个字符(.*
),并将其替换为''
列,用于列&#39; V1&#39;和&#39; V2&#39;,然后使用==
获取逻辑索引并对行进行子集化。
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>