# Mis on substring() funktsioon R-is?

R-i funktsioon `substring()` on abiks andmete analüüsimiseks ettevalmistamisel. Seda saab kasutada näiteks tekstiandmete paremini struktureeritud vormingutesse teisendamiseks.

## Milleks kasutatakse R-i funktsiooni `substring()`?

R-i `substring()` on sisseehitatud funktsioon, mis valib olemasoleva stringi osa. See võimaldab täpselt määratleda algus- ja lõppindeksid, et saaksite eraldada vajaliku stringi osa. Funktsioonil on mitmesuguseid kasutusvõimalusi, alates andmete puhastamisest kuni struktureerimata tekstiandmetest konkreetse teabe väljavõtmiseni. Seda saab kasutada näiteks postikoodide väljavõtmiseks aadressidest või kuupäevade väljavõtmiseks ajamärgetest.

`substring()` on paindlik olukordades, mis nõuavad valitud alajaotuste **asukoha ja pikkuse** täpset **kontrolli**. Seda meetodit kasutatakse sageli andmete analüüsimisel ja tekstiandmete edasiseks töötlemiseks ettevalmistamisel.

## Mis on R-keeles funktsiooni `substring()` süntaks?

`substring()` tagastab **stringist** väljavõetud **osa** ja võtab vastu järgmised parameetrid:

```R
substring(x, first, last)
```

- **`x`**: String, millest alamstring välja võetakse
- **`first`**: Alajaotuse algusindeks (esimene täht), mida soovite eraldada
- **`last`**: väljavõetava alamstringi lõppindeks (viimane märk)

Vaatame ühte näidet.

```R
original_string <- "data analysis"
result <- substring(original_string, 1, 4)
print(result)
# Output: data
```

Selles näites valime stringist `"data analysis"` alamstringi indeksist 1 kuni indeksini 4 ja salvestame selle muutujasse `result`. Väljundiks on `"data"`.

## Millised on R `substring()` praktilised kasutusvõimalused?

**Andmekogumite töötlemisel** tuleb sageli valida, muuta või eraldada teatud osad stringidest. Selleks saab R-is kasutada `substring()` funktsiooni, mis võimaldab seda teha erinevatel viisidel.

### Tähtede väljavõtmine `substring()`-ga

Võite salvestada indeksid muutujatesse ja sisestada need seejärel argumentidena `substring()`.

```R
# Original string
original_string <- "Data Science"
# Indices for extraction
start_index <- 6
end_index <- 12
# Using substring() for extraction
extracted_substring <- substring(original_string, start_index, end_index)
print(extracted_substring)
# Output: Science
```

See näide näitab, mida teeb `substring()`. Algse stringi `"Data Science"` alates positsioonist 6 kuni 12 valiti välja alamstring. Määratlesime muutujad `start_index` alguspunktina ja `end_index` lõpp-punktina. Väljund näitab väljavõetud alamstringi, antud juhul `"Science"`. Lõppindeksi väärtus 12 on kaasa arvatud, mis tähendab, et positsiooni 12 märk on alamstringis kaasas.

### Stringide manipuleerimine R-i funktsiooniga `substring()`

Esmalt loome andmestiku `df`, mis sisaldab ID-sid, vanuseid ja ameteid. Seejärel kasutame funktsiooni `substring()`, et lisada ID-veeru iga stringi teisele positsioonile tühik.

```R
# Creating a sample data frame
df <- data.frame(
    ID = c("01235", "02345", "04531"),
    Age = c(25, 30, 22),
    Occupation = c("Engineer", "Doctor", "Teacher")
)
# Inserting a space in the second position in the "ID" column
df$ID <- paste(substring(df$ID, 1, 1), " ", substring(df$ID, 2))
# Displaying the modified data frame
print("Modified Data Frame:")
print(df)
```

Selles näites võtab `substring()` välja iga numbri esimese numbri (`substring(df$ID, 1, 1`) ja ülejäänud numbrite jada alates teisest positsioonist (`substring(df$ID, 2)`). Seejärel lisatakse nende kahe alamstringi vahele tühik, kasutades [R paste](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-kleepida/). Tulemus kuvatakse andmeraami ID veerus.

Väljund näeb välja järgmine:

```R
Modified Data Frame:
    ID           Age  Occupation
1  0 1235  25     Engineer
2  0 2345  30     Doctor
3  0 4531  22     Teacher
```

Tip Kui soovite rohkem teada saada stringide kasutamisest R-is, vaadake meie digitaalsest juhendist R gsub() ja sub() õpetust.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-alajaotus/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/r-alajaotus/) for AI/LLM consumption.