Ši tema apie tai, kaip R statistinėje programoje sukurti paprastą programinį kodą.
Kad suprastumėte, kaip veikia programinis kodas, pateiksiu labai paprastą pavyzdį. Tarkime, turime duomenų lentelę su skirtingų lengvųjų automobilių išmetamu anglies dvideginio (CO2) kiekiu (g / km), variklio tūriu (kubiniais cm, kitaip, cc), svoriu (kg) ir pagaminimo metais (pvz., 2000):
CO2
|
cc
|
svoris
|
metai
|
|
1
|
134
|
999
|
1340
|
2001.5
|
2
|
166
|
1390
|
1420
|
2003.5
|
3
|
149
|
1390
|
1790
|
2005.5
|
4
|
154
|
1595
|
1810
|
2005.5
|
5
|
185
|
1600
|
1930
|
2008.5
|
6
|
185
|
1600
|
1870
|
2002.5
|
7
|
202
|
1984
|
1900
|
2002.5
|
8
|
252
|
2800
|
2470
|
2005
|
9
|
164
|
1272
|
1400
|
1987.5
|
10
|
172
|
1781
|
1400
|
1987.5
|
11
|
167
|
1391
|
1505
|
1994.5
|
12
|
176
|
1781
|
1535
|
1994.5
|
Tarkime, šią duomenų lentelę esame išsaugoję .csv formatu aplanke "C:\Users\Vartotojas\Dropbox", o .csv bylai suteiktas pavadinimas yra "auto.csv".
Sukurkime programinį kodą, kuris:
1) šių duomenų pagrindu sudarytų modelį, prognozuojantį, koks bus lengvojo automobilio išmetamas anglies dvideginio (CO2) kiekis (g / km), turint tam tikrą automobilio variklio tūrį (kubiniais cm, kitaip, cc), svorį (kg) ir pagaminimo metus (pvz., 2000);
2) sukurtų lentelėje papildomą stulpelį su prognostiniais duomenimis;
3) šią lentelę pateiktų naujoje .csv byloje.
Sukurkime .txt bylą (pavadinkime ją "kodas.txt"), pavyzdžiui, jau minėtame aplanke "C:\Users\Vartotojas\Dropbox". Atidarykime šią bylą ir pradėkime joje rašyti kodą. Pirmiausia nurodykime importuoti mūsų lentelę:
lentele<-read.csv(paste("C:/Users/Vartotojas/Dropbox","/auto.csv",sep=""), row.names=1)
mod <- lm(CO2 ~ cc + svoris + metai, data=lentele)
Paprašykime mūsų lentelėje "lentele" sukurti naują stulpelį („CO2progn“) su prognostinėmis CO2 reikšmėmis:
lentele$CO2progn <- predict(mod, newdata= lentele)
Paprašykime eksportuoti mūsų lentelę "lentele" į bylą "prognoze.csv":
write.csv(lentele,file=paste("C:/Users/Vartotojas/Dropbox","/prognoze.csv",sep=""),row.names=TRUE)
T. y. mūsų .txt byloje ("kodas.txt") bus toks tekstas (žr. pilką foną, # eilutės pradžioje reiškia, kad tai ne kodas, o mūsų patogumui pateiktas paaiškinimas):
# Pirmiausia nurodykime importuoti mūsų lentelę:
lentele<-read.csv(paste("C:/Users/Vartotojas/Dropbox","/auto.csv",sep=""), row.names=1)
# Tęskime kodą, paprašydami sudaryti modelį:
mod <- lm(CO2 ~ cc + svoris + metai, data=lentele)
# Paprašykime mūsų lentelėje "lentele" sukurti naują stulpelį („CO2progn“) su prognostinėmis CO2 reikšmėmis:
lentele$CO2progn <- predict(mod, newdata= lentele)
# Paprašykime eksportuoti mūsų lentelę "lentele" į bylą "prognoze.csv":
write.csv(lentele,file=paste("C:/Users/Vartotojas/Dropbox","/prognoze.csv",sep=""),row.names=TRUE)
Atidarykime R langą ir paprašykime paleisti kodą:
source("C:\\Users\\Vartotojas\\Dropbox\\kodas.txt")
Štai ir viskas, kodas buvo įvykdytas:
Aplanke "C:\Users\Vartotojas\Dropbox" pasitikrinkime sukurtą bylą "prognoze.csv" su prognostinėmis CO2 reikšmėmis ("CO2progn"):
Šis paprastas pavyzdys yra gera iliustracija, kokias beribes galimybes mums suteikia R programa. O sutaupytą darbo laiką galėsime feisbuke smagiai praleist.
# Pirmiausia nurodykime importuoti mūsų lentelę:
lentele<-read.csv(paste("C:/Users/Vartotojas/Dropbox","/auto.csv",sep=""), row.names=1)
# Tęskime kodą, paprašydami sudaryti modelį:
mod <- lm(CO2 ~ cc + svoris + metai, data=lentele)
# Paprašykime mūsų lentelėje "lentele" sukurti naują stulpelį („CO2progn“) su prognostinėmis CO2 reikšmėmis:
lentele$CO2progn <- predict(mod, newdata= lentele)
# Paprašykime eksportuoti mūsų lentelę "lentele" į bylą "prognoze.csv":
write.csv(lentele,file=paste("C:/Users/Vartotojas/Dropbox","/prognoze.csv",sep=""),row.names=TRUE)
source("C:\\Users\\Vartotojas\\Dropbox\\kodas.txt")
Štai ir viskas, kodas buvo įvykdytas:
Aplanke "C:\Users\Vartotojas\Dropbox" pasitikrinkime sukurtą bylą "prognoze.csv" su prognostinėmis CO2 reikšmėmis ("CO2progn"):
Šis paprastas pavyzdys yra gera iliustracija, kokias beribes galimybes mums suteikia R programa. O sutaupytą darbo laiką galėsime feisbuke smagiai praleist.