0Pricing
R Academy · Leçon

seq() pour les suites personnalisées

Contrôlez le pas, la longueur et la direction avec seq().

seq() pour les suites personnalisées est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

Introduction à seq()

seq() est le générateur de séquences flexible de R. Alors que : crée des intervalles d’entiers avec un pas de 1, seq() vous permet de contrôler le début, la fin, la taille du pas et la longueur totale de toute séquence numérique.

# 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) — pas personnalisé

L’argument by définit la taille du pas entre les valeurs consécutives. Il peut s’agir de n’importe quel nombre positif ou négatif, y compris un nombre décimal. Cela est utile pour générer des valeurs régulièrement espacées selon des intervalles non entiers.

# 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) — nombre fixé

Lorsque vous connaissez le nombre de valeurs souhaité plutôt que la taille du pas, utilisez length.out. R calculera automatiquement le pas afin de diviser l’intervalle uniformément.

# 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) — s’adapter à un vecteur

seq(along.with = x) génère la séquence d’entiers 1:length(x), identique à seq_along(x). Cette fonction est utile lorsque vous souhaitez associer une séquence d’indices à un vecteur existant.

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) — de 1 à n en toute sécurité

seq_len(n) est équivalent à seq(1, n) ou 1:n, mais gère correctement le cas particulier où n = 0 en renvoyant un vecteur d’entiers vide au lieu de 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
')

Pas négatifs avec seq()

La définition d’une valeur by négative crée une séquence décroissante. Avec un pas négatif, from doit être supérieur à to, sinon R renvoie un avertissement.

# 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, '
')

Séquences à virgule flottante

Soyez prudent avec les pas à virgule flottante : de minuscules erreurs d’arrondi peuvent entraîner l’inclusion ou l’exclusion inattendue de la dernière valeur. Utiliser length.out plutôt que by évite ce problème.

# 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), '
')

Utiliser seq() pour les axes des graphiques

Une utilisation courante de seq() consiste à générer des valeurs pour des fonctions mathématiques ou des graduations d’axes. Cette fonction permet d’échantillonner une fonction sur un intervalle à intervalles réguliers.

# 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), '
')

Comparaison entre seq() et :

Utilisez : lorsque vous voulez des entiers avec un pas de 1. Utilisez seq() lorsque vous avez besoin de pas décimaux, d’un nombre précis de valeurs ou d’une longueur correspondant à celle d’un autre vecteur. Les deux peuvent produire des résultats identiques pour de simples plages d’entiers.

# 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), '
')

En pratique : générer des points temporels

seq() est idéal pour créer des axes temporels lors de l’analyse de données — par exemple, pour générer des intervalles mensuels, trimestriels ou annuels dans le cadre d’une série chronologique.

# 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], '
')

Résumé des arguments de seq()

Voici une référence rapide des arguments de seq() :

  • from — valeur de départ (1 par défaut)
  • to — valeur de fin (1 par défaut)
  • by — taille du pas entre les valeurs
  • length.out — nombre exact de valeurs à générer
  • along.with — faire correspondre la longueur de celle d’un autre vecteur

Un seul des arguments by ou length.out doit être fourni.

# 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), '
')

Vérification rapide

Combien de valeurs seq(0, 1, length.out = 6) produit-il ?

Récapitulatif : seq() pour les séquences personnalisées

Excellent travail ! Voici les principaux points à retenir de cette leçon :

  • seq(from, to, by) — créer une séquence avec une taille de pas fixe
  • seq(from, to, length.out = n) — créer exactement n valeurs régulièrement espacées
  • seq(along.with = x) — générer des indices correspondant au vecteur x
  • seq_len(n) — version sûre de 1:n (gère n=0)
  • Préférez length.out à by pour les séquences à virgule flottante afin d’éviter les problèmes d’arrondi
  • Utilisez seq() lorsque : ne suffit pas (pas non entiers, nombre de valeurs fixe)
# 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)
')

Questions Fréquemment Posées

La leçon « seq() pour les suites personnalisées » est-elle gratuite ?

Oui — le texte complet de « seq() pour les suites personnalisées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « seq() pour les suites personnalisées » ?

Contrôlez le pas, la longueur et la direction avec seq(). Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « seq() pour les suites personnalisées » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. L’opérateur deux-points pour les intervalles d’entiers
  2. seq() pour les suites personnalisées
  3. rep() pour répéter des valeurs
  4. Vecteurs et suites nommés
← Retour à R Academy