Tôi có khung dữ liệu sau đây mà tôi muốn trích xuất các hàng dựa trên các chuỗi phù hợp.Cách đặt dữ liệu có khớp chuỗi trước
> GEMA_EO5
gene_symbol fold_EO p_value RefSeq_ID BH_p_value
KNG1 3.433049 8.56e-28 NM_000893,NM_001102416 1.234245e-24
REXO4 3.245317 1.78e-27 NM_020385 2.281367e-24
VPS29 3.827665 2.22e-25 NM_057180,NM_016226 2.560770e-22
CYP51A1 3.363149 5.95e-25 NM_000786,NM_001146152 6.239386e-22
TNPO2 4.707600 1.60e-23 NM_001136195,NM_001136196,NM_013433 1.538000e-20
NSDHL 2.703922 6.74e-23 NM_001129765,NM_015922 5.980454e-20
DPYSL2 5.097382 1.29e-22 NM_001386 1.062868e-19
Vì vậy, tôi muốn trích xuất ví dụ: hai hàng dựa trên phù hợp với chuỗi trong $ RefSeq_ID, mà hoạt động tốt với những điều sau:
> list<-c("NM_001386", "NM_020385")
> GEMA_EO6<-subset(GEMA_EO5, GEMA_EO5$RefSeq_ID %in% list, drop = TRUE)
> GEMA_EO6
gene_symbol fold_EO p_value RefSeq_ID BH_p_value
REXO4 3.245317 1.78e-27 NM_020385 2.281367e-24
DPYSL2 5.097382 1.29e-22 NM_001386 1.062868e-19
Nhưng một số các hàng đã nhiều RefSeq_IDs tách bằng dấu phẩy, vì vậy tôi đang tìm kiếm một cách tổng quát về nói nếu $ RefSeq_ID chứa một mẫu chuỗi nhất định và sau đó đặt lại hàng đó.
Cảm ơn! nó thực hiện công việc một cách hoàn hảo ... Tôi đã thử với grepl, nhưng vì nó chỉ lấy yếu tố đầu tiên của một vector tôi không thể làm cho nó hoạt động được. Bạn bỏ qua điều này bằng cách dán (l, collapse = "|") Vì vậy, đây là chuỗi tách với hoặc? Tôi nghĩ rằng tôi nên nhìn nhiều hơn vào các biểu thức thông thường :-) –
Có, các chuỗi được phân tách bằng "OR" – csgillespie