사용자 지정 시퀀스를 위한 seq()
seq()로 단계 크기, 길이, 방향을 제어합니다.
사용자 지정 시퀀스를 위한 seq()은(는) CoddyKit의 무료 R Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 R Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
seq() 소개
seq()는 R에서 유연하게 수열을 생성하는 함수입니다. :가 단계 크기 1인 정수 범위를 만드는 반면, seq()를 사용하면 모든 수치 수열의 시작 값, 끝 값, 단계 크기, 전체 길이를 제어할 수 있습니다.
# Basic seq() usage
basic <- seq(1, 10)
cat('seq(1, 10):', basic, '
')
# With step size
by_two <- seq(0, 20, by = 2)
cat('seq(0, 20, by=2):', by_two, '
')seq(from, to, by) — 사용자 지정 단계 크기
by 인수는 연속된 값 사이의 단계 크기를 설정합니다. 소수를 포함한 양수나 음수라면 어떤 값이든 사용할 수 있습니다. 정수가 아닌 간격으로 일정하게 떨어진 값을 생성할 때 유용합니다.
# Decimal step
celsius <- seq(0, 100, by = 12.5)
cat('Every 12.5 degrees:', celsius, '
')
# Step of 0.1
fine_scale <- seq(1.0, 1.5, by = 0.1)
cat('Fine scale:', fine_scale, '
')
# Negative step (descending)
countdown <- seq(10, 0, by = -2)
cat('Countdown by 2:', countdown, '
')seq(from, to, length.out) — 고정된 개수
단계 크기보다 원하는 값의 개수를 알고 있다면 length.out을 사용하십시오. R이 구간을 균등하게 나누도록 단계 크기를 자동으로 계산합니다.
# 5 evenly spaced points between 0 and 1
unit_interval <- seq(0, 1, length.out = 5)
cat('5 points in [0,1]:', unit_interval, '
')
# 7 breakpoints for a histogram
breakpoints <- seq(0, 100, length.out = 7)
cat('Histogram breaks:', breakpoints, '
')
# Step is automatically calculated
step <- (100 - 0) / (7 - 1)
cat('Step size:', step, '
')seq(along.with = x) — 벡터에 맞추기
seq(along.with = x)는 1:length(x) 정수 수열을 생성하며, seq_along(x)과 동일합니다. 기존 벡터에 인덱스 수열을 대응시키고 싶을 때 유용합니다.
rainfall <- c(55.2, 62.1, 48.7, 71.3, 38.9, 90.4, 45.0)
# Generate matching index sequence
idx <- seq(along.with = rainfall)
cat('Indices:', idx, '
')
cat('Rainfall:', rainfall, '
')
# Use to find position of max
cat('Position of max rainfall:', which.max(rainfall), '
')
cat('Max rainfall:', max(rainfall), 'mm
')seq_len(n) — 안전한 1부터 n까지
seq_len(n)은 seq(1, n) 또는 1:n과 같은 역할을 하지만, n = 0인 경우를 올바르게 처리합니다. c(1, 0) 대신 빈 정수 벡터를 반환합니다.
# Normal use
cat('seq_len(5):', seq_len(5), '
')
# Edge case: n = 0
cat('1:0 :', 1:0, '
') # produces 1 0 (WRONG)
cat('seq_len(0):', seq_len(0), '
') # produces integer(0) (CORRECT)
# In practice: safe loop
my_data <- c() # intentionally empty
for (i in seq_len(length(my_data))) {
cat('Processing item', i, '
')
}
cat('Loop completed without error
')seq()에서 음의 단계 크기 사용하기
음수 by 값을 설정하면 내림차순 시퀀스가 생성됩니다. 음수 간격을 사용할 때는 from이 to보다 커야 하며, 그렇지 않으면 R이 경고를 반환합니다.
# Countdown from 100 to 0
countdown_100 <- seq(100, 0, by = -10)
cat('Countdown:', countdown_100, '
')
# Temperature drop simulation
start_temp <- 30.0
end_temp <- 15.0
hourly_temps <- seq(start_temp, end_temp, by = -1.5)
cat('Hourly cooling:', hourly_temps, '
')부동소수점 시퀀스
부동소수점 간격을 사용할 때는 주의해야 합니다. 아주 작은 반올림 오차로 인해 마지막 값이 예상과 달리 포함되거나 제외될 수 있습니다. by 대신 length.out을 사용하면 이 문제를 피할 수 있습니다.
# Floating point step: may include or exclude endpoint
seq_by <- seq(0, 1, by = 0.1)
cat('By 0.1 (', length(seq_by), 'values):', seq_by, '
')
# length.out: always exactly n values
seq_lo <- seq(0, 1, length.out = 11)
cat('length.out=11:', seq_lo, '
')
# Check: are they the same?
cat('Identical?', identical(seq_by, seq_lo), '
')플롯 축에 seq() 사용하기
seq()는 수학 함수나 축 눈금의 값을 생성할 때 흔히 사용됩니다. 이를 사용하면 구간에서 일정한 간격으로 함수를 표본 추출할 수 있습니다.
# Sample a sine wave
x_vals <- seq(0, 2 * pi, length.out = 13)
y_vals <- round(sin(x_vals), 3)
cat('x values (radians):', round(x_vals, 2), '
')
cat('sin(x) values: ', y_vals, '
')
# Find the approximate peak
cat('Peak near x =', round(x_vals[which.max(y_vals)], 3), '
')seq()와 : 비교
간격이 1인 정수를 원한다면 :를 사용하십시오. 소수 간격, 특정 개수 또는 다른 벡터의 길이에 맞춘 시퀀스가 필요하다면 seq()를 사용하십시오. 단순한 정수 범위에서는 두 방법이 동일한 결과를 생성할 수 있습니다.
# These produce the same integer sequence
a <- 1:5
b <- seq(1, 5)
c_seq <- seq(1, 5, by = 1)
d <- seq(1, 5, length.out = 5)
cat('1:5 :', a, '
')
cat('seq(1,5) :', b, '
')
cat('seq(1,5,by=1) :', c_seq, '
')
cat('seq(1,5,lo=5) :', d, '
')
cat('All identical? :', identical(a, d), '
')실습: 시간 지점 생성하기
seq()는 데이터 분석에서 시간 축을 만들 때 매우 적합합니다. 예를 들어 시계열 작업을 위해 월별, 분기별 또는 연도별 간격을 생성할 수 있습니다.
# Monthly data points (as numeric month indices)
months_idx <- seq(1, 12, by = 1)
month_names <- month.abb # built-in R constant
cat('Month indices:', months_idx, '
')
cat('Month names :', month_names, '
')
# Quarterly: every 3 months
quarters <- seq(1, 12, by = 3)
cat('Quarter starts:', quarters, '
')
cat('Quarter names :', month_names[quarters], '
')seq() 인수 요약
다음은 seq() 인수에 대한 간단한 참고 자료입니다:
from— 시작 값(기본값 1)to— 끝 값(기본값 1)by— 값 사이의 간격 크기length.out— 생성할 값의 정확한 개수along.with— 다른 벡터의 길이에 맞춤
by와 length.out 중 하나만 지정해야 합니다.
# Five different forms of seq()
cat('seq(5) :', seq(5), '
')
cat('seq(2, 10) :', seq(2, 10), '
')
cat('seq(0, 1, by=0.25) :', seq(0, 1, by = 0.25), '
')
cat('seq(0, 1, length.out=5):', seq(0, 1, length.out = 5), '
')
cat('seq(along.with=1:4) :', seq(along.with = 1:4), '
')빠른 확인
seq(0, 1, length.out = 6)은 몇 개의 값을 생성합니까?
복습: 사용자 지정 시퀀스에 seq() 사용하기
잘하셨습니다! 이번 레슨의 핵심 내용은 다음과 같습니다:
seq(from, to, by)— 고정된 간격 크기로 시퀀스 생성seq(from, to, length.out = n)— 일정한 간격의 값을 정확히 n개 생성seq(along.with = x)— 벡터 x에 맞는 인덱스 생성seq_len(n)— 1:n의 안전한 버전(n=0 처리)- 부동소수점 시퀀스에서는 반올림 문제를 피하기 위해
by보다length.out을 우선 사용 :만으로 부족한 경우(정수가 아닌 간격, 고정된 개수)에seq()사용
# Final demo: all seq() forms
cat('Even 0-10: ', seq(0, 10, by = 2), '
')
cat('5 in [0,1]: ', seq(0, 1, length.out = 5), '
')
cat('Match 3-elem: ', seq(along.with = c('a', 'b', 'c')), '
')
cat('Safe 1:0: ', seq_len(0), '(empty)
')자주 묻는 질문
“사용자 지정 시퀀스를 위한 seq()” 강의는 무료인가요?
네 — “사용자 지정 시퀀스를 위한 seq()” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 R Academy 강의 전체를 잠금 해제할 수 있습니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“사용자 지정 시퀀스를 위한 seq()”에서 뭘 배우나요?
seq()로 단계 크기, 길이, 방향을 제어합니다. 브라우저에서 직접 실행하는 실습 코드로 R Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
R Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 R Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“사용자 지정 시퀀스를 위한 seq()” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 R Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 R Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 정수 범위를 위한 콜론 연산자
- 사용자 지정 시퀀스를 위한 seq()
- 반복 값을 위한 rep()
- 이름 있는 벡터와 시퀀스