R Academy · Lektion

Oprettelse af strenge med paste() og paste0()

Sammenkæd strenge med separatorer ved hjælp af paste og paste0.

Lektion 1 af 413 trin

Oprettelse af strenge med paste() og paste0() er en gratis R Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i R Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. R Academy-kurset indeholder 4 lektioner i alt.

Det grundlæggende om paste()

paste() konverterer sine argumenter til tekststrenge og sammenkæder dem med et skilletegn. Som standard er skilletegnet ét mellemrum ' '. Det er den mest alsidige funktion til opbygning af tekststrenge i base R.

paste('Hello', 'World')
paste('User', 'ID', ':', 42)
paste('R', 'version', '4.3.1')

paste0() — genvej uden skilletegn

paste0() er identisk med paste(..., sep=''). Den sammenkæder strenge uden skilletegn mellem dem. Det er den foretrukne funktion, når du programmatisk opbygger filstier, kolonnenavne eller URL'er.

paste0('file_', 1:5, '.csv')
paste0('col_', c('a', 'b', 'c'))
paste0('/home/user/', 'data.csv')

Ændring af skilletegnet med sep

Argumentet sep styrer, hvad der placeres mellem hvert argument. Brug det til at opbygge CSV-rækker, filstier, datostreng eller et hvilket som helst afgrænset output.

# Hyphen-separated date
paste('2024', '05', '29', sep = '-')
# Slash-separated path
paste('home', 'user', 'docs', sep = '/')
# Comma-separated
paste('Alice', 'Bob', 'Carol', sep = ', ')

Vektoriseret paste()

paste() er vektoriseret — når den får vektorer, parrer den elementer position for position (og genbruger kortere vektorer efter behov). Resultatet har samme længde som den længste inputvektor.

labels <- c('Item', 'Item', 'Item')
numbers <- c(1, 2, 3)
paste(labels, numbers)
# Shorter form using recycling
paste('Item', 1:5)

Sammenkædning af en vektor til én streng

Argumentet collapse sammenføjer alle elementerne i resultatvektoren til én tekststreng og bruger collapse-værdien som skilletegn mellem elementerne. Uden collapse får du en tekstvektor; med det får du én tekststreng.

fruits <- c('apple', 'banana', 'cherry')
# Without collapse: character vector of length 3
paste('I like', fruits)
# With collapse: single string
paste('I like', fruits, collapse = ' and ')

sep og collapse sammen

Du kan bruge både sep og collapse i det samme funktionskald. Først sammenføjer sep argumentvektorerne element for element, og derefter sammenføjer collapse den resulterende tekstvektor til én tekststreng.

first <- c('John', 'Jane', 'Bob')
last  <- c('Doe', 'Smith', 'Brown')
# sep joins first+last, collapse joins all three names
paste(first, last, sep = ' ', collapse = ', ')

paste0() til opbygning af variabelnavne

paste0() bruges ofte til programmatisk at opbygge variabel- eller kolonnenavne, filstier og SQL-lignende strenge uden overflødige skilletegn.

# Build column names
col_names <- paste0('Q', 1:5, '_score')
print(col_names)
# Build file paths
years <- 2020:2023
files <- paste0('data/report_', years, '.csv')
print(files)

Numerisk konvertering i paste()

paste() konverterer automatisk tal, logiske værdier og andre typer til tekststrenge. Du behøver ikke først at kalde as.character() — paste() håndterer det gennemsigtigt.

n <- 42
pi_val <- 3.14159
flag <- TRUE
paste('Count:', n)
paste('Pi =', pi_val)
paste('Active:', flag)
paste0('n=', n, ' pi=', round(pi_val, 2))

Oprettelse af CSV-lignende rækker

Kombinér vektoriseret paste() med collapse = ',' for at oprette enkle CSV-outputstrenge fra en data frame uden at indlæse en ekstern pakke.

names_vec  <- c('Alice', 'Bob', 'Carol')
scores_vec <- c(85, 92, 78)
rows <- paste(names_vec, scores_vec, sep = ',')
cat(paste(rows, collapse = '\n'))

Håndtering af NA i paste()

I modsætning til mange R-funktioner konverterer paste() NA til den bogstavelige tekststreng 'NA' i stedet for at videreføre den manglende værdi. Det er nyttigt, men kan overraske brugere, der forventer, at manglende værdier håndteres lydløst.

x <- c('Hello', NA, 'World')
paste(x, '!')
# NA becomes the string 'NA'
result <- paste0('Value: ', NA)
print(result)
print(class(result))

Praktiske mønstre: paste() i rapporter

paste() er særligt nyttig, når du genererer læsbare rapportstrenge. Kombinér paste0(), round() og paste() med collapse for at opbygge opsummerende sætninger ud fra data.

mean_score <- 83.7
n_students  <- 28
high_score  <- 99
msg <- paste0(
  'Class summary: ', n_students, ' students, ',
  'mean score ', round(mean_score, 1), ', ',
  'top score ', high_score, '.'
)
cat(msg)

Hurtigt tjek

Hvad gør argumentet collapse i paste()?

Vigtigste pointer om paste() og paste0()

Vigtigste pointer om paste() og paste0():

  • paste(a, b) sammenføjer med et mellemrum; paste0(a, b) sammenføjer uden skilletegn
  • sep styrer tekststrengen mellem hvert argument
  • collapse reducerer den resulterende vektor til én tekststreng
  • Begge funktioner er vektoriserede og genbruger kortere argumenter
  • NA konverteres til den bogstavelige tekststreng 'NA'
  • Tal og logiske værdier konverteres automatisk til tekst
# sep vs collapse at a glance
x <- c('a', 'b', 'c')
y <- c(1, 2, 3)
cat('paste (sep=-)  :', paste(x, y, sep = '-'), '\n')
cat('paste (collapse):', paste(x, collapse = '+'), '\n')
cat('paste0          :', paste0(x, y), '\n')
Gratis at komme i gang

Lær R med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
43
Lektioner
159

Ofte stillede spørgsmål

Er lektionen “Oprettelse af strenge med paste() og paste0()” gratis?

Ja — alle 3 lektioner i læringssporet R Academy, inklusive “Oprettelse af strenge med paste() og paste0()”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. R Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oprettelse af strenge med paste() og paste0()”?

Sammenkæd strenge med separatorer ved hjælp af paste og paste0. Du øver dig i R Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på R Academy?

Der kræves ingen tidligere erfaring. R Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Oprettelse af strenge med paste() og paste0()”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne R Academy-lektion?

Ja. Alle R Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af strenge med paste() og paste0()
  2. Formatteret output med sprintf()
  3. Visning af output med cat() og print()
  4. Udfyldning og justering af strenge
← Tilbage til R Academy