데이터 프레임이 있고 두 개의 열 ( "Up"및 "Down")에 중복 된 문자열이있는 행을 제거하려고합니다. 일부 행에 2 개 열 중 1 개에만 중복 된 문자열 값이있는 경우 제거하면 안됩니다. 중복 된 행에서 다른 열 ( "접기"라는 이름)에서 발견 된 가장 높은 값을 가진 행을 유지하고 싶습니다. 이 태스크와 별도로 네 번째 열 ( "이름")에는 다음과 같은 일부 문자 대체가 필요합니다.
이것으로부터:
ID Name Fold Up Down
1 mRNA_splicing(5) 3.2 a,b,c,d,e f,g,h,i
2 mRNA_processing(7) 3.1 a,b,c,d,e f,g,h,i
3 adherens_junctions(5) 2.6 k,l,m p,q,r,s,t,u
4 glucose_transport(4) 3.4 d,j,n o,p,v,w,z
5 hexose_transport(2) 3.5 d,j,n o,p,v,w,y,z
나는 이것을 얻고 싶다 :
ID Name Fold Up Down
1 mRNA splicing 3.2 a,b,c,d,e f,g,h,i
2 adherens junctions 2.6 k,l,m p,q,r,s,t,u
3 glucose transport 3.4 d,j,n o,p,v,w,z
4 hexose transport 3.5 d,j,n o,p,v,w,y,z
중복 된 행을 제거 duplicate
하거나 unique
문자에 대해 작동 하지 않는 기능에 대해서는 여기서 어떻게해야합니까? 우아한 솔루션에 감사드립니다.
데이터 테이블 솔루션 사용 :
dt <- as.data.table(your_df)
dt <- dt[dt[, .I[Fold == max(Fold)], by=list(Up, Down)]$V1]
dt[["Name"]] <- gsub("_", " ", sub("\\(.*?\\)$", "", dt[["Name"]]))
dt
ID Name Fold Up Down
1: 1 mRNA splicing 3.2 a,b,c,d,e f,g,h,i
2: 3 adherens junctions 2.6 k,l,m p,q,r,s,t,u
3: 4 glucose transport 3.4 d,j,n o,p,v,w,z
4: 5 hexose transport 3.5 d,j,n o,p,v,w,y,z
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다