2012-11-28 2 views
0

한 빠른 질문컬럼에서 플롯 된 텍스트, ";" 문자열

사진 데이터 프레임 그래서 난 x와 y

plot(x,y) 

플롯이

같은 점 레이블을 수행 할
data=data.frame(x=c(1,2,3), y=c(4,5,6), Genes=c("AHS;AKS;AHS","AHS;IO","HU")) 

같은 구분
text(data$x+0.2,data$y+0.2,labels=data$Genes) 

하지만 유전자 col의 모든 인수를 사용하고 싶지 않습니다. 첫 번째 열 (예 : 앞에 ";") 도와 주실 수 있습니까? 이것은 단지 예일 뿐이므로 read.delim으로 내 데이터를 이미 읽었으므로 문자열 분리로 특정 "읽기"작업을 수행 할 수 없습니다. 아마도 ...

그것을

unlist(lapply(strsplit(data$Genes, ';'), '[', 1)) 

그러나 그것은 안 좋아요입니다 :

gsub('^([A-Z]+);.*$', '\\1', data$Genes) 

또한 strsplit을 사용할 수

+3

정규식을 사용하여이를 수행 할 수 있습니다. 데이터 $ Genes) – Justin

답변

1

내 댓글 당, 당신이이해야 할 gsub을 사용할 수 있습니다 stringr 패키지를 언급 ​​할 가치가 있습니다.이 패키지는 예측 가능한 구문을 사용하여 많은 문자열 뭉치 함수를 단일 장소에 수집합니다. 및 이름.

+0

대단히 고마워요, 완벽하게 작동합니다 – hendrik

+0

@hendrik 듣기 좋았습니다. 내 답변이 귀하의 질문에 답변 한 경우 옆에있는 체크 표시를 클릭하여 다른 사람들이 해결되었음을 알 수 있도록하십시오. – Justin