Gsub는 문자열을 사이에 유지합니다.

Gsub는 문자열을 사이에 유지합니다.

R에 데이터 세트가 있습니다.

"Pppppp;Ccccccccc;Ooooo;My_string;Ggggggg;"

Mystring을 유지하고 싶습니다(이전과 이후의 모든 내용이 삭제되도록). 내 문자열은 항상 세 번째 ";" 뒤에 옵니다. Pppppp, Ccccc, Oooo 및 Ggggg는 줄마다 길이가 다릅니다.

이 작업을 수행하는 방법을 아시나요?

스키마를 생성하려고 합니다.

gsub(pattern="\\w[;]{3}", replacement="")

하지만 나는 항상 문자열 대신 ";"을 제거하게 됩니다...

탭으로 구분된 파일이 아닙니다.

감사해요

답변1

문자열은 항상 왼쪽에서 오른쪽으로 세 번째 ";" 다음에 시작됩니까? 또한 "탭으로 구분된 파일이 아닙니다"라는 것은 무엇을 의미합니까? R에서 구분 기호 ";"를 사용하여 테이블로 가져올 수 있습니다. 그것은 다음과 같습니다:

tmp <- read.table("your.file.txt", sep=";", header=F)

그런 다음 네 번째 열(즉, 세 번째 ";" 다음 열)을 선택합니다.
my_strings <- tmp$V4

R을 사용하는 것입니다.

답변2

귀하의 질문을 이해했는지 잘 모르겠지만 다음을 수행하면 목표를 달성할 수 있다고 생각합니다.

 awk -F ";" '{OFS=";";print $1,$2,$3,$4}' input_file

관련 정보