문자 반복하기 (strsplit)
Coddy R 여정의 기초 섹션에 포함된 레슨 — 78개 중 65번째.
문자열의 각 문자를 개별적으로 처리해야 한다면 어떻게 해야 할까요? 벡터와 달리, R에서는 문자열의 문자를 직접 루프(loop)로 돌릴 수 없습니다. strsplit() 함수는 문자열을 문자 벡터로 분할하여 이 문제를 해결합니다.
strsplit() 함수는 분할할 문자열과 구분자라는 두 개의 인수를 받습니다. 개별 문자로 분할하려면 빈 문자열 ""을 구분자로 사용하세요:
word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)출력:
[1] "h" "e" "l" "l" "o"끝에 있는 [[1]]을 확인하세요. 이는 strsplit()이 리스트를 반환하기 때문이며, 문자 벡터를 얻으려면 첫 번째 요소를 추출해야 합니다. 문자들이 벡터 형태로 준비되면, 이미 배운 기술들을 사용하여 이들을 반복 처리할 수 있습니다:
word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
print(char)
}출력:
[1] "R"이 기술은 특정 문자 수 세기, 문자열 뒤집기 또는 입력을 문자 단위로 검증하는 것과 같은 작업에 필수적입니다.
챌린지
쉬움단어(예: programming)가 포함된 한 줄의 입력을 받게 됩니다.
strsplit()을 사용하여 문자열을 개별 문자로 분리하세요:
- 입력된 단어를 문자 벡터로 분리합니다.
- 벡터의 각 문자를 루프(loop)로 순회합니다.
- 단어에 문자
"a"가 몇 번 나타나는지 셉니다 (대소문자 구분). print()를 사용하여 각 문자를 개별 줄에 출력합니다.- 루프가 끝난 후,
cat()을 사용하여Count of 'a': X형식 뒤에 줄바꿈을 붙여 개수를 출력합니다.
예를 들어, 입력이 다음과 같다면:
banana출력은 다음과 같아야 합니다:
[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3설명: "banana"라는 단어는 c("b", "a", "n", "a", "n", "a") 문자들로 분리됩니다. 각 문자가 출력되고, 문자 "a"는 3번 나타납니다.
치트 시트
문자열을 개별 문자로 분리하려면, 빈 문자열 ""을 구분자로 사용하여 strsplit()을 사용하세요:
word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)출력:
[1] "h" "e" "l" "l" "o"[[1]]은 strsplit()에 의해 반환된 리스트에서 첫 번째 요소를 추출하여 문자 벡터를 제공합니다.
그런 다음 문자들을 반복문으로 처리할 수 있습니다:
word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
print(char)
}직접 해보기
# 입력 읽기
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))
# 문자 'a'를 위한 카운터 초기화
count_a <- 0
# TODO: 아래에 코드를 작성하세요
# 1. strsplit()을 사용하여 단어를 개별 문자로 분리합니다
# 2. 각 문자를 반복합니다
# 3. print()를 사용하여 각 문자를 출력합니다
# 4. 'a'가 나타나는 횟수를 셉니다
# 'a'의 개수 출력
cat("Count of 'a': ", count_a, "\n", sep = "")이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.