Avaisin tähän tämän keskustelun, eli miten data siirtyy R:n ja Musteen välillä (tarkoitan lähinna .SVO tai .MAT R:n data.frame:ksi tms. ja toisinpäin). Olen osin unohtanut eri tavat, niistä olisi muutenkin hyvä laittaa esimerkkejä...
|
Administrator
|
Survo-data (tiedosto tai toimituskentän eri datamuodot) R:n data frameksi:
FILE LOAD <data> TO R>data R> summary(data) R> attributes(data) R:n data frame Survo dataksi: FILE SAVE R>data TO NEW <data> Matriisit eivät vielä siirry suoraan vaan ne pitää muuntaa ensin Survo-dataksi ja taas matriisiksi R:ssä: FILE SAVE MAT <matrix> TO NEW MAT FILE LOAD MAT TO R>mat R>mat <- as.matrix(mat) |
Datan esittäminen html-taulukkona
DATA A N X1 X2 Survo -60 AAA Muste 2.09 BBB FILE LOAD A TO R>A R CUR+1,CUR+6 f_writeData2HTMLtable1(data=A, file="A.html", class=c(NULL, "stat")[1], # Esim. "class='stat'" for css attr=c("border=2 align=left")[1] , rownames=FALSE, caption=paste("Taulukko:")); ############# LOADP A.html
/OPEN A.html Funktion koodi: ##################################################### #### _WRITE DATA FRAME INTO HTML TABLE 1_ / ###### "f_writeData2HTMLtable1" <- function(data=NULL, file="testi_tbl.html", class=c(NULL, "stat")[1], ##### "class='stat'")[1], attr=c("border=2 align=left")[1] , rownames=FALSE, caption="") { require(xtable); lv_a <- ""; if(!is.null(class)) { lv_a <- paste("class='", class,"'", sep="") }; print(xtable(data, caption=caption), type="html", file=file, sanitize.text.function = function(x){x}, html.table.attributes = paste(lv_a , attr), include.rownames=rownames ) }; ### #### END WRITE DATA FRAME INTO HTML TABLE ### EX. ##D1 <- data.frame(X=c("A","B"), Y=c(1,2), Z=c("Hannu", "Kerttu")); ## ##f_writeData2HTMLtable1(data=D1, file="testi.html", class=NULL, ## attr="border=1"); ## ############################ |
Administrator
|
Last change 01.12.2000 mpk
MTAB: output in HTML (Markku Korhonen)
The following statements generate a normal output in the edit field MTAB IEADATA,END+2 VARIABLES=Knowldge GROUPING=Attitude Means, Deviations and Frequencies Attitude Attitude Attitude Attitude 1 2 3 Total Knowldge Knowldge Knowldge Knowldge M 83.412 72.282 53.833 69.853 D 35.370 31.480 31.971 32.991 F 17 103 30 150 Completing with some HTML-related statements: MTAB IEADATA,END+2 VARIABLES=Knowldge GROUPING=Attitude HTML_BEGIN=1 HTML_END=1 TABLTITLE=Tietotestin_pistemäärä_ja_suhtautuminen_luonnont._aineisiin<BR>keskiarvot;_hajonnat_ja_lukumäärät The generated table looks now:
The next example produce a two-way table of means with links to the files corresponding the values of variable Sex: MTAB IEADATA,END+2 VARIABLES=Knowldge GROUPING=Attitude,Sex Attitude=1(Like),2(DontKnow),3(NotLike) Sex=1(Boys),2(Girls) HTML_BEGIN=1 HTML_END=1 HTMLTITLE=IEA-tutkimus_Ruotsin_koululaisista HTMLNAME=IEAtutkimus TABLTITLE=Tietotestin_keskim._pistemäärä_ja_suhtautuminen_luonnont._sukupuolittain AttitudeTITLE=Suhtatuminen_luonnont SexTITLE=Sukupuoli OPTIONS=MEANS KnowldgeTITLE=Tietotestin_pistemäärä HREFBASE=knowsex HREFVBLE=Sex HTMLFILE=C:\web\ieakoe.htm TBGCOLOR=aqua IEA-tutkimus Ruotsin koululaisista
|
In reply to this post by Reijo Sund
Tuossa tuo attributes(data) antaa mm. jotain tämän näköistä:
$status.varname [1] "X X " [2] "TYYTYV2 TYYTYV2 (###.################) [3] "TYOMARKK TYOMARKK (##.#################)" [4] "TAVHVKO TAVHVKO (##.################)" [5] "SAIPV SAIPV (###.###############)" Siis FILE STATUksen tyyppistä. Tässä tuleekin kysymys, että miten muuttujien pitemmät selitykset saisi fiksusti siirtymään R:n ja .SVO välillä? Status.varnamesta voisi noukkia mahd. pitemmän nimet, esim. jos ne olisi kuten alla: $status.varname [1] "X X " [2] "TYYTYV2 TYYTYV2 (###.################) Kokonaistyytyväisyys työelämään (0-100) " [3] "TYOMARKK TYOMARKK (##.#################)" [4] "TAVHVKO TAVHVKO (##.################)" [5] "SAIPV SAIPV (###.###############) Sairauspäivät vuodessa" Toki tuo vaatii vähän merkkijonon manipulointia... (esim. gsub()). Toinen suunta on tietty sitten, kun R:n data.frame viedään .SVOksi. |
Administrator
|
Attribuuteissa on tosiaan suoraan .SVO-filen metadatat, joita mm. FILE STATUS näyttää. Ja ne siirtyvät mukana juuri siksi, että niitä voisi halutessaan käyttää R:n puolella. Merkkijonon manipulointi menee samoin kuin .SVO-fileiden kanssa eli 8 ensimmäistä merkkiä kertovat muuttujan lyhyen nimen ja loput sitten pitkän nimen, muotoilut yms. Tuohon suuntaan ei vielä siirry juurikaan metadataa, mutta se olisi toki periaatteessa mahdollista.. |
OK. Mietin keinoa, miten tuosta attributes() voisi napata mahdollisen pitemmän muuttujaselityksen. Tosiaan gsub / regex toiminnoilla, mutta kenties fiksuinta olisi tägätä se jotenkin esim.
<LNAME>Pitkä muuttujanimi</LNAME> Tuommoinen pitäisi sitten vaan suunnitella etukäteen... Minusta on tärkeätä, että myös metatieto kulkee mahdollisimman hyvin R:n objektien ja .SVO,... välillä (niin kuin tuossa nyt ainekset näyttävät olevankin :) |
Administrator
|
Metadata on olennaisen tärkeää tutkimusprosessin dokumentaation kannalta.
R:ää on kritisoitu siitä, että SAS- ja SPSS-datojen metatiedot eivät (ainakaan kätevästi) liiku sinne, kun dataa siirretään. Olisi hyvä ottaa tässä(kin) asiassa pisteet kotiin,kun niitä on tarjolla. Eräänlainen metadatan pilaamisen ääriesimerkki on Mplus, joka haluaa datat sisään sellaisina txt-tiedostoina, joista on POISTETTU muuttujien nimet ekalta riviltä! |
In reply to this post by Reijo Sund
Ohessa liitteenä toimituskenttä.DATAMOV3.EDT
|
In reply to this post by Petri Palmu
DATA _K1 X aaaaaa bb cccccccccccc FILE COPY _K1 TO NEW K1 FILE LOAD K1 TO R>D D D$X Survo data file K1: record=35 bytes, M1=5 L=64 M=1 N=3 > D X 1 aaaaaa 2 bb 3 cccccccccccc > D$X [1] "aaaaaa " "bb " "cccccccccccc" Survo data file K1: record=35 bytes, M1=5 L=64 M=1 N=3 R:ssä read.table():n yhteydessä on strip.white=TRUE toiminto, joka poistaa välilyönnit merkkijonojen edestä ja takaa. Tuon tyyppinen optio voisi olla ihan kätevä myös .SVO -> R-data yhteydessä? |
Free forum by Nabble | Edit this page |