Console vs Editor
Below, we deal with some issues that previous students have found frustrating – hopefully, we can help make your life a little easier when beginning R.
The issues will seem somewhat dissociated at the moment, but if you invest a little time now, it will make your introduction to R easier.
1 Working interactively versus scripted
The console is an inter-active playground you can use to experiment with code.
Think of it as scrap note paper – you scribble some thing, try it out and throw it in the bin!
The text editor, is where you gradually collect a body of working code and organize it into a complete solution.
Think of it as the final clean version which you gradually assemble, until the project is completed.
The two are independent of each other – what you write in one does not affect the other – and yet, a typical workflow consists of ping-pong’ing back and forth between them.
The aim is to end up with a script in the text editor that produces all the results and output you need – at the end, it matters NOT what you have in the console.
- Write your initial code draft in the text editor – sequentially in the order that makes sense
- Test that code sequentially in the console (by CTRL+ENTER) – amend your code in the editor as necessary and test again.
- On regular occasions, clear the Console, clear the Environment memory, clear the Viewer and restart the R session – then test your code again from start to finish.
Example 1
Play the video (repeatedly, if need be) and see whether you can spot any workflow mistakes.
The R code sqrt(64))
is written in the text editor, which is probably a good idea, but:
- is has not been saved to file yet and
- it has not been tested in the console. Pressing [ENTER] simply skips to the next line in the editor, so we don’t actually know whether it works as intended.
..move on to the next example below:
Example 2
Play the video (repeatedly, if need be) and see whether you can spot any workflow mistakes.
The R code sqrt(64))
in the text editor was tested (by CTRL-ENTER) in the console, which is a good idea, but:
- it still has not been saved to file yet and
- we discovered a mistake in he code (an extra end-bracket
)
) - we tested the amended code
sqrt(64)
in the console and it worked … which is a good thing - but we forgot to amend the code in the editor which still has the faulty
sqrt(64))
code
..move on to the next example below:
Example 3
Play the video (repeatedly, if need be) and see whether you can spot any workflow mistakes.
The R code sqrt(64))
in the text editor was amended to sqrt(64)
, which is a good idea!
We now added a second line of code, which introduces a variable my_number
. Unfortunate, the variable is defined as a string literal "64"
, which is probably not what we wanted.
- Both lines are tested in the console
- An error occurs when testing line 2
sqrt(my_number)
, which actually reflects a semantic error in line 1 (my_number
should have been a number, not a string) - We amend the code in line 1 in the text editor (which is a good idea)..
- but forgot to test line 1 (CTRL+ENTER) before moving on to test line 2. Thus in the Environment memory,
my_number
is still a string and.. - thus testing line 2 in the console fails, irrespective of the amended line 1 in the text editor
- but forgot to test line 1 (CTRL+ENTER) before moving on to test line 2. Thus in the Environment memory,
You need to be stringent about testing you code in the console AND continually keeping the tekst editor up to date.
- Write your initial code draft in the text editor – sequentially in the order that makes sense
- Test that code sequentially in the console (by CTRL+ENTER) – amend your code in the editor as necessary and test again.
- On regular occasions, clear the Console, clear the Environment memory, clear the Viewer and restart the R session – then test your code again from start to finish.
Nedenfor behandler vi nogle problemer, som tidligere studerende har fundet frustrerende – forhåbentlig kan vi hjælpe dig til et lidt lette liv med R.
Problemerne er lidt uden sammenhæng i øjeblikket, men hvis du investerer lidt tid nu, vil det gøre din introduktion til R lettere.
2 At arbejde interaktivt versus skripted
Konsollen er en interaktiv legeplads, du kan bruge til at eksperimentere med kode.
Tænk på det som kladdepapir – du skriver noget ned, prøver det af og smider det i skraldespanden!
Tekst editoren er der, hvor du gradvist samler en mængde fungerende kode og organiserer den til en komplet løsning.
Tænk på det som den endelige, rene version, som du gradvist samler, indtil projektet er færdigt.
De to er uafhængige af hinanden – hvad du skriver i den ene påvirker ikke den anden – og alligevel består en typisk arbejdsgang af at ping-pong frem og tilbage mellem dem.
Målet er at ende med et script i teksteditoren, der producerer alle de resultater og output, du har brug for – i sidste ende betyder det IKKE noget, hvad du har i konsollen.
- Skriv dit første kodeudkast i teksteditoren – sekventielt i den rækkefølge, der giver mening.
- Test koden sekventielt i konsollen (med CTRL+ENTER) – rediger din kode i editoren efter behov, og test igen.
- Ryd regelmæssigt konsollen, ryd miljøhukommelsen, ryd fremviseren og genstart R-sessionen – test derefter din kode igen fra start til slut.
Eksempel 1
Afspil videoen (flere gange om nødvendigt) og se om du kan få øje på fejlene i arbejdsgangen.
R-koden sqrt(64))
er skrevet i teksteditoren, hvilket nok er en god idé, men:
- den er ikke blevet gemt i en fil endnu, og
- den er ikke blevet testet i konsollen. At klikke [ENTER] skifter bare linje i tekst editoren, så vi ved faktisk ikke, om koden fungerer som tilsigtet.
…gå videre til det næste eksempel nedenfor:
Eksempel 2
Afspil videoen (gentagne gange, hvis det er nødvendigt) og se om du kan finde fejlene i arbejdsgangen.
R-koden sqrt(64))
i teksteditoren blev testet (med CTRL-ENTER) i konsollen, hvilket er en god idé, men:
- den er stadig ikke gemt i filen endnu, og
- vi opdagede en fejl i koden (en ekstra slutparentes
)
) - vi testede den ændrede kode
sqrt(64)
i konsollen, og den virkede … hvilket er en god ting - men vi glemte at ændre koden i editoren, som stadig har den fejlbehæftede
sqrt(64))
-kode
..gå videre til næste eksempel nedenfor:
Eksempel 3
Afspil videoen (gentagne gange, hvis det er nødvendigt) og se om du kan finde fejlene i arbejdsgangen.
R-koden sqrt(64))
i teksteditoren blev ændret til sqrt(64)
, hvilket er en god idé!
Vi har nu tilføjet en anden kodelinje, som introducerer en variabel my_number
. Desværre er variablen defineret som en strengliteral "64"
, hvilket sandsynligvis ikke er det, vi ønskede.
- Begge linjer testes i konsollen
- Der opstår en fejl, når linje 2
sqrt(my_number)
testes, hvilket faktisk afspejler en semantisk fejl i linje 1 (my_number
skulle have været et tal, ikke en streng) - Vi ændrer koden i linje 1 i teksteditoren (hvilket er en god idé)..
- men glemte at teste linje 1 (CTRL+ENTER), før vi gik videre til test af linje 2. I miljøhukommelsen er
my_number
således stadig en streng, og.. - dermed mislykkes test af linje 2 i konsollen, uanset den ændrede linje 1 i teksteditoren
Du skal være stringent ift at afprøve kode i konsollen og løbende tilrette din kode i tekst editoren.
- Skriv dit første kodeudkast i teksteditoren – sekventielt i den rækkefølge, der giver mening
- Test koden sekventielt i konsollen (med CTRL+ENTER) – ret din kode i editoren efter behov og test igen.
- Ryd regelmæssigt konsollen, ryd miljøhukommelsen, ryd fremviseren og genstart R-sessionen – test derefter din kode igen fra start til slut.