문자열 분할 및 결합
Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 3번째.
strsplit(x, split)은 문자열을 각 구분자에서 자릅니다. 입력 문자열마다 하나의 문자 벡터가 담긴 리스트를 반환하므로, 단일 문자열의 조각을 가져오려면 [[1]]을 사용하세요.
csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))출력:
[1] "red" "green" "blue"
[1] 3paste()는 반대로 작동합니다. collapse를 사용하면 하나의 벡터에 있는 요소들을 하나의 문자열로 결합하고, 요소 사이에 collapse 텍스트를 넣습니다. sep는 인수 사이에 요소별로 들어갑니다.
words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))출력:
[1] "one-two-three"
[1] "one_1" "two_2" "three_3"입력된 텍스트에는 구분자 주변에 공백이 있는 경우가 많습니다. trimws()는 각 요소의 시작과 끝에 있는 공백을 제거합니다:
raw <- " apples , pears,plums "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))출력:
[1] "apples" "pears" "plums"
[1] "plums | pears | apples"벡터에 strsplit()을 적용하면 문자열마다 리스트 요소가 하나씩 반환되므로, 각 입력 행은 고유한 조각들을 유지합니다:
lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])출력:
[1] 2
[1] "c" "d" "e"챌린지
쉬움hashtags(line)을 완성하세요. line에는 쉼표로 구분된 태그가 들어 있으며, 태그 앞뒤에 공백이 있을 수 있습니다. 모든 태그 앞에 #을 붙이고 태그를 단일 공백으로 구분한 문자열 하나를 반환하세요. r, data ,stats는 #r #data #stats가 됩니다.
제공된 코드는 line을 읽고 반환된 값을 출력합니다.
직접 해보기
hashtags <- function(line) {
# 여기에 코드를 작성하세요
line
}
# 제공된 입출력 코드: 그대로 두세요
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[1]), sep = "\n")
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러