2016-01-30 3 views
1

Я хочу, чтобы строки были строками до . в столбце V1 и 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> 

ответ

1

Мы можем попробовать 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> 
Смежные вопросы