strsplit( , split="") + paste( , collaspe ="")를 이용해 문자열 역순으로 반환하기


#### strsplit() - 결과는 [[1]] 리스트인 것 유의! ####
#*** 실제로 띄워쓰기가 있는 경우 많이 쓰인다.
strsplit("adfawwsfwwdsfwa", split="w") # 기준이되는 w는 사라진다.
# 띄워쓰기를 쪼개기g
strsplit("how are you?", split=" ")


# *** 모든 단어 쪼개기 , split="" ***
strsplit("how are you?", split="")
a <- strsplit("how are you?", split="")
a #a를 확인해보니, [[1]]형태의 리스트이다.****
class(a)


# 다시 합치기
paste(a) # ***strsplit()으로 쪼개면, list형태의 [[]]로 반환되기 때문에 바로 못붙힌다.***
class(a[[1]]) #character 벡터
paste(a[[1]]) # 붙은 것 같으나 따옴표로 연결되어있다.
paste(a[[1]], collapse = "") # strsplit()으로 쪼갠 문자열 리스트는, [[1]]해도 바로 안붙고, collapse인자로 큰따옴표를 붕괴시켜야 제대로 붙는다.


#### 실전 ####
# 글자가 앞뒤가 바뀌도록 하는 함수 만들기***
# 1. strsplit( , split = "") 로 모든 단어 다 쪼개기
splited <- strsplit("I love you, daisy Kim!", split="")

# 2. 쪼개진 단어들 역순시키기기
#  - ***원소들의 인덱싱을 역순으로 해주면 된다.***
length(splited[[1]]) # 리스트 속 쪼개진 문자열 데이터의 개수
#  - ***만약 원래 String을 가져올 수 있다면 nchar(string)으로 하면된다.
#  - 끝:1로 역순으로 인덱싱하여 역순으로 바꾸자.
splited[[1]] [ length(splited[[1]]) : 1]
reversed <- splited[[1]] [ length(splited[[1]]) : 1]
# 3. paste(, collapse=="")로 쪼개진 단어들 붙히자.
paste(reversed, collapse = "")



#### 글자 역순으로 바꾸는 사용자 함수 정의 ####
reverse_char <- function(string){
   splited <- strsplit(string, split="")
   # 원본 문자열전체를 string으로 알고 있으니, nchar(string)만 해주면, 쪼개진 단어의 끝 번호를 알 수 있다.
   reversed <- splited[[1]] [nchar(string):1]
   result <- paste(reversed, collapse = "")
   return(result) # return과 for 다음에 바로 ()가 필요하다!***
}


reverse_char("안녕하세요")
reverse_char("how are you?")



strsplit( , split=" ") + paste( , collaspe =" ")를 이용해 단어 역순(reverse)으로 반환하기

# 지난시간 모든 글자 쪼개기
a <- strsplit("how are you?", split="") #split = ""를 통해 모든글자 쪼개기


#### 단어를 역순으로 배열하기 ####
# 1. 단어별로 쪼개기
splited <- strsplit("how are you?", split=" ") #split = " "를 통해 단어별로 쪼개기
splited


# 2. 쪼개진 단어들의 갯수 끝번호 : 1  -> 반대로 인덱싱하여 역순으로 배열하기
reversed <- splited[[1]] [length(w[[1]]) : 1]
reversed


# 3. 합치기
paste(reversed, collapse = " ") # collapse = " "를 통해 단어별로 합치기


# 4. 함수로 만들기
reverse_word <- function(string){
   splited <- strsplit(string, split=" ")
   reversed <- splited[[1]] [length(splited[[1]]) : 1] # 글자쪼개기와 다르게 nchar(string)는 글자 총 몇개 <---> 여기서는 쪼개진 단어가 몇개의 데이터인지 알아야한다.
   return(paste(reversed, collapse = " "))
}


reverse_word("안녕 하세용!")

+ Recent posts