R에서 공백 없이 문자열 붙여넣기

Jesse John 2023년6월21일
  1. R에서 문자열을 병합할 때 공백 제거
  2. 기본 R 함수
  3. 결론
R에서 공백 없이 문자열 붙여넣기

이 문서에서는 문자열을 병합(연결)할 때 공백을 제거하는 세 가지 방법을 살펴봅니다.

R에서 문자열을 병합할 때 공백 제거

데모를 위해 개별 문자열, 문자열 벡터 및 문자열이 있는 데이터 프레임을 사용합니다.

예제 코드:

# The individual strings.
s1 = "The sky"
s2 = "is blue."
s1a = " The sky "
s2a = " is blue. "

# Columns for the data frame.
C1 = c("The sky", " The earth ")
C2 = c("is blue.", " is green. ")
# The data frame.
dtfr = data.frame(Col1=C1, Col2=C2)

기본 R 함수

다음 기본 R 함수를 사용하여 문자열에서 공백을 제거할 수 있습니다.

paste() 함수를 sep=""와 함께 사용하여 공백 제거

문자열을 붙여넣을 때 R은 사이에 공백을 추가합니다. sep=""를 사용하여 추가된 공간을 제거할 수 있습니다.

동일한 길이의 벡터 컨텍스트에서 paste()는 벡터의 해당 요소를 병합합니다. 공백을 추가하지 않고 모든 출력 요소를 하나의 긴 문자열로 병합하려면 collapse=""를 사용할 수 있습니다.

공백을 추가하지 않고 데이터 프레임 열을 병합하려면 sep=""를 사용하십시오.

예제 코드:

# MERGE WITH paste()

# Default: adds space.
paste(s1, s2)

# Remove added space.
paste(s1, s2, sep="")

# Does not remove existing spaces.
# Variables s1a and s2a have space characters at the beginning and end.
paste(s1a, s2a, sep="")

# Element-wise merging of vectors.
# No spaces are added in between.
paste(C1, C2, sep="")

# After element-wise merging, we can
# collapse all the elements of the result into a single string.
paste(C1, C2, sep="", collapse="")

# Merge columns of a data frame.
# No spaces are added in between.
dtfr$Mr = paste(dtfr$Col1, dtfr$Col2, sep="")
dtfr

출력:

> # Default: adds space.
> paste(s1, s2)
[1] "The sky is blue."

> # Remove added space.
> paste(s1, s2, sep="")
[1] "The skyis blue."

> # Does not remove existing spaces.
> # Variables s1a and s2a have space characters at the beginning and end.
> paste(s1a, s2a, sep="")
[1] " The sky  is blue. "

> # Element-wise merging of vectors.
> # No spaces are added in between.
> paste(C1, C2, sep="")
[1] "The skyis blue."        " The earth  is green. "

> # After element-wise merging, we can
> # collapse all the elements of the result into a single string.
> paste(C1, C2, sep="", collapse="")
[1] "The skyis blue. The earth  is green. "

> # Merge columns of a data frame.
> # No spaces are added in between.
> dtfr$Mr = paste(dtfr$Col1, dtfr$Col2, sep="")
> dtfr
         Col1        Col2                     Mr
1     The sky    is blue.        The skyis blue.
2  The earth   is green.   The earth  is green.

trimws()paste() 기능을 사용하여 공백 제거

trimws() 함수는 문자열의 왼쪽, 오른쪽 또는 양쪽에서 공백을 제거할 수 있습니다. 공백 문자 외에 공백으로 간주되는 다른 문자에는 가로 탭, 캐리지 리턴 및 개행 문자가 포함됩니다.

기본적으로 이 함수는 문자열 양쪽에서 모든 공백을 제거합니다.

통사론:

trimws(string, which="side", whitespace="[ \t\r\n]")
# where `side` can be `left` or `right` or `both`

예제 코드:

# trimws() removes spaces from the left, right or both
trimws(s2a, which="left", whitespace=" ")
trimws(s2a, which="right", whitespace=" ")
trimws(s2a, which="both", whitespace=" ")
# By default, it removes all whitespace from both sides.
s2a
trimws(s2a)

# Remove leading, trailing and added spaces when merging vectors.
paste(trimws(C1), trimws(C2), sep="")

# Remove leading, trailing and added spaces when combining columns of a data frame.
dtfr$Mr2 = paste(trimws(dtfr$Col1), trimws(dtfr$Col2), sep="")
dtfr

출력:

> # trimws() removes spaces from the left, right or both
> trimws(s2a, which="left", whitespace=" ")
[1] "is blue. "
> trimws(s2a, which="right", whitespace=" ")
[1] " is blue."
> trimws(s2a, which="both", whitespace=" ")
[1] "is blue."

> # By default, it removes all whitespace from both sides.
> s2a
[1] " is blue. "
> trimws(s2a)
[1] "is blue."

> # Remove leading, trailing and added spaces when merging vectors.
> paste(trimws(C1), trimws(C2), sep="")
[1] "The skyis blue."    "The earthis green."

> # Remove leading, trailing and added spaces when combining columns of a data frame.
> dtfr$Mr2 = paste(trimws(dtfr$Col1), trimws(dtfr$Col2), sep="")
> dtfr
         Col1        Col2                     Mr                Mr2
1     The sky    is blue.        The skyis blue.    The skyis blue.
2  The earth   is green.   The earth  is green.  The earthis green.

paste() 함수를 사용하여 병합하기 전에 trimws()를 사용하여 문자열 양쪽에서 공백을 제거했습니다.

gsub()paste() 기능을 사용하여 공백 제거

통사론:

gsub(search_for, replace_with, 문자열)

예제 코드:

# For vectors: merge strings and remove all spaces from the result.
gsub(" ", "", paste(C1, C2))

# For data frame: merge string columns of a data frame and remove all spaces.
dtfr$Mr3 = gsub(" ", "", paste(dtfr$Col1, dtfr$Col2))
dtfr

출력:

> # For vectors: merge strings and remove all spaces from the result.
> gsub(" ", "", paste(C1, C2))
[1] "Theskyisblue."    "Theearthisgreen."

> # For data frame: merge string columns of a data frame and remove all spaces.
> dtfr$Mr3 = gsub(" ", "", paste(dtfr$Col1, dtfr$Col2))
> dtfr
         Col1        Col2                     Mr                Mr2              Mr3
1     The sky    is blue.        The skyis blue.    The skyis blue.    Theskyisblue.
2  The earth   is green.   The earth  is green.  The earthis green. Theearthisgreen.

먼저 paste()를 사용하여 문자열을 병합한 다음 gsub()를 사용하여 모든 공백을 제거합니다.

stringr 패키지 및 paste() 기능을 사용하여 공백 제거

통사론:

str_replace_all(string, search_for, replace_with)

예제 코드:

# Install the stringr package.
# install.packages("stringr")
# Load the stringr package.
library(stringr)

# With vectors.
str_replace_all(paste(C1, C2), " ", "")

# With columns of a data frame.
# We will first recreate the dataframe to improve readability.
dtfr = data.frame(Col1=C1, Col2=C2)

# Use the str_replace_all() function.
dtfr$StrRplAll = str_replace_all(paste(dtfr$Col1, dtfr$Col2), " ", "")
dtfr

출력:

> # Load the stringr package.
> library(stringr)

> # With vectors.
> str_replace_all(paste(C1, C2), " ", "")
[1] "Theskyisblue."    "Theearthisgreen."

> # With columns of a data frame.
> # We will first recreate the dataframe to improve readability.
> dtfr = data.frame(Col1=C1, Col2=C2)

> # Use the str_replace_all() function.
> dtfr$StrRplAll = str_replace_all(paste(dtfr$Col1, dtfr$Col2), " ", "")
> dtfr
         Col1        Col2        StrRplAll
1     The sky    is blue.    Theskyisblue.
2  The earth   is green.  Theearthisgreen.

R의 tidyversestringr 패키지는 stringi 패키지 위에 구축됩니다. 이 패키지는 gsub() 함수와 유사한 str_replace_all() 함수를 제공합니다.

결론

이 문서에서는 다음을 제거하는 방법을 설명했습니다.

  • paste() 함수로 문자열을 병합할 때 공백이 추가됩니다.
  • 문자열의 선행 및 후행 공백.
  • 문자열의 모든 공백.

원하는 출력을 얻기 위한 필요에 따라 기능을 결합/중첩할 수 있습니다.

작가: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

관련 문장 - R String