동일한 패턴 * .stage1을 가진 문자열로 채워진 열이 있습니다. 모든 문자열을 가져 와서 모든 문자열을 다른 열에 글 머리 기호로 복사하고 싶습니다. ".stage1"을 잘라 내고 ".stage1"앞에있는 모든 문자로 첫 번째 열을 채 웁니다.동일한 패턴을 가진 열의 문자열 자르기
이렇게하면 많은 시간을 절약 할 수 있습니다.이 스크립트를 만들 수있는 패키지를 제안 해 주시겠습니까? 열을 복사
감사합니다, 마고
동일한 패턴 * .stage1을 가진 문자열로 채워진 열이 있습니다. 모든 문자열을 가져 와서 모든 문자열을 다른 열에 글 머리 기호로 복사하고 싶습니다. ".stage1"을 잘라 내고 ".stage1"앞에있는 모든 문자로 첫 번째 열을 채 웁니다.동일한 패턴을 가진 열의 문자열 자르기
이렇게하면 많은 시간을 절약 할 수 있습니다.이 스크립트를 만들 수있는 패키지를 제안 해 주시겠습니까? 열을 복사
감사합니다, 마고
는 문제가되지 않을 것이다. sub
으로 변경된 버전을 만들 수 있습니다.
## Some sample data
df = data.frame(x = paste0("A", 1:9, ".stage1"))
> df
x
1 A1.stage1
2 A2.stage1
3 A3.stage1
4 A4.stage1
5 A5.stage1
6 A6.stage1
7 A7.stage1
8 A8.stage1
9 A9.stage1
df$x2 = df$x
df$x = sub("(.*)\\.stage1", "\\1", df$x)
df
x x2
1 A1 A1.stage1
2 A2 A2.stage1
3 A3 A3.stage1
4 A4 A4.stage1
5 A5 A5.stage1
6 A6 A6.stage1
7 A7 A7.stage1
8 A8 A8.stage1
9 A9 A9.stage1
sub
문에 일부 추가 세부 사항.
sub
은 첫 번째 표현식과 일치하는 모든 것을 두 번째 표현식으로 바꿉니다. 그 표현들은 무엇입니까?
첫 번째 표현 : "(. *) \\. stage1"
. 모든 문자와 일치합니다.
. *는 임의의 수의 문자와 일치합니다.
. *는 괄호 안에 있기 때문에 일치하는 것이 있으면 \ 1이라는 변수에 저장됩니다.
그래서 "(. *) \\. stage1"은 ".stage1"문자열과 \ 1의 .stage1 앞에 문자를 저장하기 전에 모든 문자열과 일치합니다.
두 번째 표현식 : "\\ 1"
대체 문자열이 "\\ 1"이므로 이전의 문자로 바꾸기를 원합니다.
당신은 stringr
에서 str_match
와 함께 직접 작업을 수행 할 수 있습니다 괄호 안에
library(stringr)
x <- paste0("A", 1:9, ".stage1") # sample data
str_match(x, "(.*)\\.stage")
[,1] [,2]
[1,] "A1.stage" "A1"
[2,] "A2.stage" "A2"
[3,] "A3.stage" "A3"
[4,] "A4.stage" "A4"
[5,] "A5.stage" "A5"
[6,] "A6.stage" "A6"
[7,] "A7.stage" "A7"
[8,] "A8.stage" "A8"
[9,] "A9.stage" "A9"
값은 문자열의 첫 번째 부분을 캡처, 당신은 str_match
를 호출 할 때 그래서 캡처와 전체 문자열 플러스 열을 반환 값.
샘플 데이터를 제공해 주시겠습니까? – akash87