--#: Koodit saa ajattua ja eivät ilmoita virheestä, mutta koodi ei anna mitään ulos. Voi olla myös tarkoitus. --Heta 22. elokuuta 2013 kello 13.06 (EEST)
Rajaus
Testidata. rivit 1-5 ja sarakkeet 1-29 Venäjän keskusvaalilautakunnan datadumpista.
Määritelmä
Data
Sisältää erikoismerkkejä kuten kyrillisiä kirjamia.
Kausaliteetti
Ei ylävirtamuuttujia
Yksikkö
"#"
Kaava
Ei kaavaa, taulukkotietoa
Tulokset
Lukeminen ja kirjoittaminen strukturoidulla datalla
R-koodi datan tallettamiseksi Baseen ja datan lukemiseksi Basesta.
+ Näytä koodi- Piilota koodi
# Luetaan tiedot Opasnet Base-tietokannasta, muuttujasta Op_fi2791:
#
library(OpasnetBaseUtils)
library(xtable)
# Maaritellaan 2*3-matriisin alkiot
sex1 <- 11; country1 <- 21; age1 <- 31; sex2 <- 61; country2 <- 71; age2 <- 81
#
# Luodaan ylla mainittujan alkioiden avulla Baseen talletettava matriisi jolla nimetyt sarakkeet
talletettavaMatriisi <- matrix(c(sex1,country1,age1,sex2,country2,age2),ncol=3,byrow=TRUE)
colnames(talletettavaMatriisi) <- c("Sex","Country","result")
#
# Printataan naytolle
print("Baseen talletettava matriisi")
talletettavaMatriisi; print(xtable(talletettavaMatriisi),type="html")
#
# Muunnetaan data.frameksi
talletettavaMatriisi = as.data.frame(talletettavaMatriisi)
#
# Talletetaan Baseen
opbase.upload(dsn = "opasnet_base_write", input = talletettavaMatriisi, ident = "Op_fi2791", acttype = 4, who = wiki_username, unit = "-")
#
# Luetaan Basesta
#luettuMatriisi <- opbase.data("opasnet_base","Op_fi2791")
luettuMatriisi <- op_baseGetData("opasnet_base", "Op_fi2791")
#
# Printataan naytolle
print("Basesta luettu matriisi")
luettuMatriisi; print(xtable(luettuMatriisi),type="html")
###############################################################
# Varhaisempaa matskua, josta siirretty olennaiset tiedot ylle
#
# library("OpasnetBaseUtils")
# library("xtable")
#
# input <- matrix(c(sex1,country,age1,sex2,country,age2),ncol=3,byrow=TRUE)
# colnames(input) <- c("Sex","Country","result")
# print(xtable(input),type="html")
#
# input = as.data.frame(input)
# res <- opbase.upload("opasnet_base_write", input, "Op_en1390", "Sandbox TEST", "LEaB", 1, wiki_username, 4, 'result')
# thedata <- opbase.data("opasnet_base","Op_en1390")
# print(xtable(thedata),type="html")
#
# Ylla olevien funktioiden maarittelyt:
#
# opbase.data <- function(dsn, ident, include = NULL, exclude = NULL, series_id = NULL, iterations = NULL)
# opbase.upload <- function(dsn, input, ident = NULL, name = NULL, unit = NULL, objtype_id = NULL, who = NULL, acttype = NULL, rescol = NULL, n.obs.const = FALSE)
| |
Lukeminen ja kirjoittaminen strukturoiMATTOMALLA datalla
R-koodi joka tallentaa ja lukee taulukon jossa ei ole sarakenimiä ja joka sisältää useampia alkioita.
Pelkkä lukeminen Basesta
Tämä koodinpätkä ei tallenna Baseen mitään, ainoastaan LUKEE sieltä.
HSopen-tyyppisen datan kirjoittaminen ja lukeminen
Kokeilukoodi, jossa testataan HSopen-tyyppisen datan käyttöä.
- Huom! Lyhyttä muotoa opbase.upload-funktiosta (joka ilmenee alla olevasta koodista) ei itse asiassa voi käyttää ENSIMMäISEEN talletukseen TYHJÄÄN MUUTTUJAAN vaan on ensin pistettävä siemen-datavektori Baseen Opasnet Base Import-ikkunan kautta, toisesta talletuksesta lukien voi käyttää yllä olevaa muotoa.
+ Näytä koodi- Piilota koodi
# Luetaan tiedot Opasnet Base-tietokannasta, muuttujasta Op_fi2791:
#
library(OpasnetBaseUtils)
library(xtable)
# Luetaan stackin korkeus annetusta arvosta series_id = xxx alkaen. Jos mitaan
# arvoa ei ole annettu, tapahtuu lukeminen ainoasta jaljella olevasta arvosta alkaen
# (olettaen etta kaikissa edeltavissa Baseen talletuksissa on kirjoitettu edellisen paalle)
# ja arvoksi saadaan Obs = 1 + 1 = 2.
#
if(EkaTalletus == "no") {
Obs <- max(op_baseGetData(dsn = "opasnet_base", "Op_fi2791")[,"obs"]) + 1
# ekvivalentisti: Obs <- max(op_baseGetData(dsn = "opasnet_base", "Op_fi2791", series_id=XXXX)[,"obs"]) + 1
# missa XXXX = stackin paallimmainen 'punainen koodinumero' eli numero, jonka jalkeen appendia (acctype = 5)
# on alettu kayttaa talletuksissa (ks. opbase_upload-funktion argumentit alempana)
#
# Printataan stackin korkeus
Obs
}
if(EkaTalletus == "yes") {Obs <- 1; act <- 4 } else act <- 5
# Maaritellaan datamatriisi
data <- data.frame(
obs = rep(Obs, 6),
Parameter = c("AjetutKilometrit", "KorvattavatKilometritPros", "ParasEhdotus", "KilometriKattoOma", "KorvausPerKMOma", "PolitiikkaEhdotusOma"),
Result = c(AjetutKilometrit, KorvattavatKilometritPros, ParasEhdotus, KilometriKattoOma, KorvausPerKMOma, PolitiikkaEhdotusOma))
# Tulostetaan datamatriisi
print("Määritellään datamatriisi (data)")
data; print(xtable(data),type="html")
opbase.upload(dsn = "opasnet_base_write", input = data, ident = "Op_fi2791", acttype = act, who = wiki_username, unit = "-")
# Huom! Tata lyhytta muotoa ei itse asiassa voi kayttaa ENSIMMAISEEN talletukseen TYHJAAN MUUTTUJAAN vaan on ensin pistettava siemen-datavektori Baseen Opasnet Base Import-ikkunan kautta, toisesta talletuksesta lukien voi kayttaa ylla olevaa muotoa.
# Luetaan ylla talletettu matriisi Basesta
luettuMatriisi <- op_baseGetData("opasnet_base", "Op_fi2791")
#
# Printataan naytolle
print("Basesta luettu matriisi")
luettuMatriisi; print(xtable(luettuMatriisi),type="html")
#print("-----------------------------")
#print("class(luettuMatriisi)"); class(luettuMatriisi)
#print("dim(luettuMatriisi)"); dim(luettuMatriisi)
#print("luettuMatriisi[,5]"); luettuMatriisi[,5]
#print("class(luettuMatriisi[,5]))"); class(luettuMatriisi[,5])
#print("-------")
#print("luettuMatriisi[,5][1]"); luettuMatriisi[,5][1]
#print("-------")
#an <- length(luettuMatriisi[,5]); print("an"); an
#print("luettuMatriisi[,5][an-5]"); luettuMatriisi[,5][an-5]
#print("luettuMatriisi[,5][an-4]"); luettuMatriisi[,5][an-4]
#print("luettuMatriisi[,5][an-3]"); luettuMatriisi[,5][an-3]
#print("luettuMatriisi[,5][an-2]"); luettuMatriisi[,5][an-2]
#print("luettuMatriisi[,5][an-1]"); luettuMatriisi[,5][an-1]
#print("luettuMatriisi[,5][an-0]"); luettuMatriisi[,5][an-0]
#print("-------")
#print("class(luettuMatriisi[,5][an-5])"); class(luettuMatriisi[,5][an-5])
#print("as.numeric(as.vector(luettuMatriisi[,5][an-5]))"); as.numeric(as.vector(luettuMatriisi[,5][an-5]))
#print("class(luettuMatriisi[,5][an-1])"); class(luettuMatriisi[,5][an-1])
#print("as.character(luettuMatriisi[,5][an-1])"); as.character(luettuMatriisi[,5][an-1])
| |
Katso myös
Viitteet