문자열 분할 및 결합
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)을 완성하세요. 이 줄에는 쉼표로 구분된 태그가 있으며, 태그 앞뒤에 공백이 있을 수도 있습니다. 모든 태그 앞에 #을 붙이고 한 칸의 공백으로 구분한 하나의 문자열을 반환하세요. r, data ,stats는 #r #data #stats가 됩니다.
제공된 코드는 줄을 읽고 반환된 값을 출력합니다.
직접 해보기
hashtags <- function(line) {
# 여기에 코드를 작성하세요
line
}
# 제공된 입력/출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[1]), sep = "\n")
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러