Inleiding Programmeren + R

Input via toetsenbord

» Start

Input via toetsenbord


R kent een aantal manieren om input op te vangen via het toetsenbord. In de eerste plaats met behulp van de functie scan. Een van de argumenten die scan daarbij gebruikt is n; het aantal waarden dat ingelezen gaat worden. 

Bijvoorbeeld:

    

    y <- scan(n=1)

    

leest 1 numerieke waarde in en kent die waarde vervolgens toe aan de variabele y.


Check: 

Wat gebeurt in als je in het bovenstaande voorbeeld meer dan 1 waarde intypt?

Wat gebeurt in als je in het bovenstaande voorbeeld een woord intypt, bijv 'hallo' ?


Als je in een zelf geschreven programma de gebruiker om input wil vragen (ipv die input als parameter bij de aanroep mee te geven), zou je daarvoor de volgende functie kunnen gebruiken:

prmpt <- function(input) {

# input geeft aan hoeveel getallen moeten worden ingelezen

cat("Geef steeds 1 getal na elke : ","\n")

out <- scan(n=input)

out

}

Kopieer en plak de bovenstaande regels in een tekstfile (Notepad, of Textwrangler), en bewaar die file met naam prompt.r in de working directory van R.


Een tweede mogelijk om via het keyboard input op te vangen werkt met de functie readline:

    

    readline(prompt = "")

    

Als prompt kunt u een vraag aan de gebruiker invullen, zoals "Geef steeds 1 getal na elke :" in het scan voorbeeld.

    

    y <- readline(prompt = "Geef input: ")

    

In tegenstelling tot scan die numerieke input oplevert, maakt readline variabelen van het type karakter. Daar kan dus pas mee gerekend worden nadat ze zijn omgezet tot het numerieke type.