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의 tidyverse
의 stringr
패키지는 stringi
패키지 위에 구축됩니다. 이 패키지는 gsub()
함수와 유사한 str_replace_all()
함수를 제공합니다.
결론
이 문서에서는 다음을 제거하는 방법을 설명했습니다.
paste()
함수로 문자열을 병합할 때 공백이 추가됩니다.- 문자열의 선행 및 후행 공백.
- 문자열의 모든 공백.
원하는 출력을 얻기 위한 필요에 따라 기능을 결합/중첩할 수 있습니다.