strsplit ( "A, B. C", c ( ",", "."))가 ". ”?

Oct 07 2020

분명히 문서를 오해하고 있으므로 빨리 만들겠습니다. strsplit("A, B . C",c(", ",". "))"A, B. C"에서 ","의 모든 발생을 검색하고 실행 한 것처럼 strsplit strsplit("A, B . C",", ")한 다음 여전히 문자열 형식으로 출력을 가져 와서 마치 것처럼 strsplit해야한다는 것이 내 이해입니다 . 나는 달렸다 strsplit([tidied output],". "). 즉, 내 예상 출력은 list(c("A","B ","C")).

실제로이 코드를 실행하면 "."이 제거되지 않았 음을 보여주는 다음 결과가 표시됩니다. 무엇이 잘못 되었습니까?

> strsplit("A, B . C",c(", ",". "))
[[1]]
[1] "A"     "B . C"

정규식 문제가 아닌 것 같습니다. 예를 들어, 설정 fixed=TRUE은 정규식 일치를 비활성화하도록되어 있지만 출력은 변경되지 않습니다.

> strsplit("A, B . C",c(", ",". "),fixed = TRUE)
[[1]]
[1] "A"     "B . C"

답변

4 AkselA Oct 07 2020 at 02:59

주어진 벡터 split가 그렇게 작동하지 않으면 f.ex를 참조하십시오.

strsplit(c("A, B . C", "A, B . C"), c(", ", ". "), fixed=TRUE )
# [[1]]
# [1] "A"     "B . C"

# [[2]]
# [1] "A, B " "C"    

그것은 함께 순환됩니다 x. 경우 x길이 하나이며, 첫 번째의이 split사용됩니다.
더 많은 인수를 추가하는 가장 쉬운 방법 split은 예를 들어 일반 정규식으로 처리하는 것입니다.

strsplit("A, B . C",  "[.,] " )
# [[1]]
# [1] "A"  "B " "C"