R에서 찾기 및 바꾸기 기능을 사용하여 문자열의 일치하는 부분이 아닌 문자열의 전체 값을 대체하는 방법을 찾고 있습니다. (매우) 긴 이름이 많은 데이터 세트가 있으며 해당 값을 찾고 변경할 수있는 효율적인 방법을 찾고 있습니다.
예를 들어이 전체 문자열을 변경하려고했습니다.
string <- "Generally.speaking..do.you.prefer.to.try.out.new.experiences.like.trying.things.and.meeting.new.people..or.do.you.prefer.familiar.situations.and.faces."
...에
"exp"
이 코드로
string <- gsub("experiences", "exp", string)
그러나 이렇게하면 "exp"가 "experiences"와 일치하는 문자열의 일부로 만 대체되고 나머지 긴 이름은 그대로 유지됩니다 (명확성을 위해 굵게 표시됨).
"일반적으로 .speaking..do.you.prefer.to.try.out.new. exp ..like.trying.things.and.meeting.new.people..or.do.you.prefer.familiar.situations. and.faces. "
이 경우 문자열에 "experiences"가 포함되어 있으므로 "exp"로 바꿔야합니다.
gsub 또는 다른 함수에 전체 값을 대체하도록 지시하는 방법이 있습니까? 나는 많은 튜토리얼을 보았고 함수는 문자열 또는 전체 값에서만 작동하지만 둘 사이에서는 작동하지 않는 것 같습니다.
gsub
다음과 같이 사용할 수 있습니다 .
gsub(".*experiences.*", "exp", string, perl=TRUE)
# As @rawr notes, set perl=TRUE for improved efficiency
이 정규식은 문자가 0 번 이상 (예 :) .*
뒤에 "experiences"가 있고 그 뒤에 0 번 이상의 문자가있는 문자열과 일치 합니다.
이 경우 여전히 전체 일치를 "exp"로 바꾸지 만 regex를 사용하여 일치의 정의를 확장하여 ( "experience"에서 ". * experience. *"로) 원하는 대체를 달성합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다