Oprettelse af strenge med paste() og paste0()
Sammenkæd strenge med separatorer ved hjælp af paste og paste0.
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 skilletegnsepstyrer tekststrengen mellem hvert argumentcollapsereducerer den resulterende vektor til én tekststreng- Begge funktioner er vektoriserede og genbruger kortere argumenter
NAkonverteres 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')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
- Oprettelse af strenge med paste() og paste0()
- Formatteret output med sprintf()
- Visning af output med cat() og print()
- Udfyldning og justering af strenge