[R-sig-DB] crash with RMySQL

christophe dutang dut@ngc @end|ng |rom gm@||@com
Sun Apr 5 12:47:55 CEST 2009


Dear all,

I'm using R 2.8.1 with MySQL 5.1.33, RMySQL 0.7-3 (built against MySQL 5.1.3
version), DBI 0.2-4 on windows XP.

I'm trying to do a basic SQL statement

SELECT  AVG(mycolumnA), COUNT(mycolumnA), mycolumnB FROM mytable GROUP BY
mycolumnB;

directly from R using DBI functions. But it just crashes R with no explicit
reason. If I do manually this statement in MySQL (exactly
SELECT  AVG(mycolumnA), COUNT(mycolumnA), mycolumnB FROM mydb.mytable GROUP
BY mycolumnB; ), it works and produces the following output :

+----------------+------------------+-----------+
| avg(mycolumnA) | count(mycolumnA) | mycolumnB |
+----------------+------------------+-----------+
|         0.5262 |              669 |         1 |
|         0.2242 |              455 |         2 |
|         0.3347 |              505 |         3 |
|         0.2416 |              389 |         4 |
|         0.5857 |             1038 |         5 |
|         0.3250 |              523 |         6 |
|         0.1935 |              310 |         7 |
|         0.3574 |              333 |         8 |
|         0.4132 |              167 |         9 |
|         0.3529 |              136 |        10 |
|         0.4043 |              282 |        11 |
|         0.0000 |                2 |        12 |
+----------------+------------------+-----------+
12 rows in set (0.03 sec)

I have a reproductible example (this time). See the R file and the csv file.


Originally I worked with R 2.7.2 version and MySQL 5.0.67, RMySQL 0.6-1, DBI
0.2-4, and got the same crash.

Does anyone idea of what I'm doing wrong? or encounter similar problems?

Thanks in advance

Christophe

PS : I copy/paste my files, in the case attachments are not permitted.

---------------------------------------------------------------- mycode.R
library(RODBC)
library(DBI)
library(RMySQL)
library(MASS)

options("max.print"=1000)
options(show.error.messages = TRUE)

checkMySQLreservedname <- function(name2check)
{
# reserved name by MySQL cf.
http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-1.html


    thelist <- c("ACCESSIBLE","ADD","ALL",    "ALTER","ANALYZE","AND",
"AS","ASC","ASENSITIVE",
    "BEFORE","BETWEEN","BIGINT",    "BINARY","BLOB","BOTH",
"BY","CALL","CASCADE",
    "CASE","CHANGE","CHAR",    "CHARACTER","CHECK","COLLATE",
"COLUMN","CONDITION","CONNECTION",
    "CONSTRAINT","CONTINUE","CONVERT",
"CREATE","CROSS","CURRENT_DATE",
"CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER",
    "CURSOR","DATABASE","DATABASES",
"DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE",    "DAY_SECOND","DEC","DECIMAL",
    "DECLARE","DEFAULT","DELAYED",    "DELETE","DESC","DESCRIBE",
"DETERMINISTIC","DISTINCT","DISTINCTROW",
    "DIV","DOUBLE","DROP",    "DUAL","EACH","ELSE",
"ELSEIF","ENCLOSED","ESCAPED",
    "EXISTS","EXIT","EXPLAIN",    "FALSE","FETCH","FLOAT",
"FLOAT4","FLOAT8","FOR",
    "FORCE","FOREIGN","FROM",    "FULLTEXT","GOTO","GRANT",
"GROUP","HAVING","HIGH_PRIORITY",
    "HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND",
"IF","IGNORE","IN",    "INDEX","INFILE","INNER",
    "INOUT","INSENSITIVE","INSERT",    "INT","INT1","INT2",
"INT3","INT4","INT8",
    "INTEGER","INTERVAL","INTO",    "IS","ITERATE","JOIN",
"KEY","KEYS","KILL",
    "LABEL","LEADING","LEAVE",    "LEFT","LIKE","LIMIT",
"LINEAR","LINES","LOAD",
    "LOCALTIME","LOCALTIMESTAMP","LOCK",    "LONG","LONGBLOB","LONGTEXT",
"LOOP","LOW_PRIORITY","MASTER_SSL_VERIFY_SERVER_CERT",
    "MATCH","MEDIUMBLOB","MEDIUMINT",
"MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND",
"MINUTE_SECOND","MOD","MODIFIES",
    "NATURAL","NOT","NO_WRITE_TO_BINLOG",    "NULL","NUMERIC","ON",
"OPTIMIZE","OPTION","OPTIONALLY",
    "OR","ORDER","OUT",    "OUTER","OUTFILE","PRECISION",
"PRIMARY","PROCEDURE","PURGE",
    "RANGE","READ","READS",    "READ_ONLY","READ_WRITE","REAL",
"REFERENCES","REGEXP","RELEASE",
    "RENAME","REPEAT","REPLACE",    "REQUIRE","RESTRICT","RETURN",
"REVOKE","RIGHT","RLIKE",
    "SCHEMA","SCHEMAS","SECOND_MICROSECOND",
"SELECT","SENSITIVE","SEPARATOR",    "SET","SHOW","SMALLINT",
    "SPATIAL","SPECIFIC","SQL",
"SQLEXCEPTION","SQLSTATE","SQLWARNING",
"SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT",
    "SSL","STARTING","STRAIGHT_JOIN",    "TABLE","TERMINATED","THEN",
"TINYBLOB","TINYINT","TINYTEXT",
    "TO","TRAILING","TRIGGER",    "TRUE","UNDO","UNION",
"UNIQUE","UNLOCK","UNSIGNED",
    "UPDATE","UPGRADE","USAGE",    "USE","USING","UTC_DATE",
"UTC_TIME","UTC_TIMESTAMP","VALUES",
    "VARBINARY","VARCHAR","VARCHARACTER",    "VARYING","WHEN","WHERE",
"WHILE","WITH","WRITE",
    "XOR","YEAR_MONTH","ZEROFILL")

    name2change <- name2check %in% thelist | name2check %in%
tolower(thelist)
    name2change <- name2check[name2change]

    if(length(name2change) == 0)
    {
        return(NULL)
    }else
        return(name2change)



}


changeName <- function(name)
{

    result <- sapply(name, FUN = function(x) paste("my__", x, sep=""))

    result
}


#-------------------------------------------------------

MyDirectory <- "C:/Documents and Settings/chris/Bureau/essai"
mytablename <- "mytable"
dbname <- "mydb"
print.log <- TRUE
csvtype <- ";"

#-------------------------------------------------------

drv <- dbDriver("MySQL")
if(print.log) print(summary(drv))

con <- dbConnect(drv)
if(print.log) print(summary(con))


dbSendQuery(con,  paste("CREATE DATABASE IF NOT EXISTS ", dbname))
con <- dbConnect(drv, dbname=dbname) #as anonymous

if(print.log) print(summary(con))

if(!is.character(mytablename))
    stop("internal error wrong table name")

if(dbExistsTable(con, mytablename))
    dbRemoveTable(con, mytablename)


dbefore <- getwd()

setwd(MyDirectory)


lfile <- list.files()
lfile <- lfile[grep(".csv",lfile)]


resExport <- matrix("",length(lfile),4)
colnames(resExport) <-  c("input file name", "nb row imported","nb column
imported", "var name changed")

exporttoDB <- function(file, table, toappend, endofline="\r\n")
{

    #dimension checking
    if(csvtype == ",")
    {    firstrow <- read.csv(file, nrows=1)
    }else if(csvtype == ";")
    {    firstrow <- read.csv2(file, nrows=1)
    }else
    {    stop("wrong csv value separator, neither comma nor semi colon")
    }

    zecolname <- colnames(firstrow)

    nbcolumn <- length(zecolname)
    if(nbcolumn > 1)
    {    mask  <- c(NA, rep("NULL",nbcolumn-1))
    }else
    {    mask  <- NA
    }

    if(csvtype == ",")
    {    firstcolumn <- read.csv(file, colClasses=mask)
    }else if(csvtype == ";")
    {    firstcolumn <- read.csv2(file, colClasses=mask)
    }else
    {    stop("wrong csv value separator, neither comma nor semi colon")
    }

    nbrow <- NROW(firstcolumn)

    need2Change <- checkMySQLreservedname(zecolname)
    if(!is.null(need2Change))
    {
        newname <- changeName(need2Change)
        zecolname[zecolname %in% need2Change] <- newname
    }else
    {
        newname <- ""
    }


    if(print.log) print("dimension")
    if(print.log) print(nbrow)
    if(print.log) print(nbcolumn)

    # can be loaded directly into R
    if(nbrow*nbcolumn <= 10*10^6)
    {
        if(csvtype == ",")
        {    data <- read.csv(file)
        }else if(csvtype == ";")
        {    data <- read.csv2(file)
        }else
        {    stop("wrong csv value separator, neither comma nor semi colon")
        }
        print(head(data))

        colnames(data) <- zecolname

        dbWriteTable(con, table, data, append=toappend, eol=endofline)

        nbrowread <- NROW(data)
    }else
    {
    # must be splitted
        nbpart <- ceiling(nbrow*nbcolumn/(10*10^6))
        nbrow2read <- ceiling(nbrow/nbpart)

        if(csvtype == ",")
        {    data <- read.csv(file, nrows=nbrow2read-1, skip=0,
header=TRUE)
        }else if(csvtype == ";")
        {    data <- read.csv2(file, nrows=nbrow2read-1, skip=0,
header=TRUE)
        }else
        {    stop("wrong csv value separator, neither comma nor semi colon")
        }

        colnames(data) <- zecolname



        dbWriteTable(con, table, data, append=toappend, eol=endofline)

        nbrowread <- NROW(data)


        for(i in 2:nbpart)
        {
            if(csvtype == ",")
            {    data <- read.csv(file, nrows=nbrow2read,
skip=(i-1)*nbrow2read, header=FALSE)
            }else if(csvtype == ";")
            {    data <- read.csv2(file, nrows=nbrow2read,
skip=(i-1)*nbrow2read, header=FALSE)
            }else
            {    stop("wrong csv value separator, neither comma nor semi
colon")
            }

            colnames(data) <- zecolname



            dbWriteTable(con, table, data, append=TRUE, eol=endofline)

            nbrowread <- nbrowread + NROW(data)

        }
    }
    c(nbrowread, nbcolumn, newname)
}





tryexport <- function(...)
{
    as.character(try(exporttoDB(...)))
    #!(is.character(try(exporttoDB(...))))

}

for (i in 1:length(lfile))
{
    resExport[i,1] <- lfile[i]
    cat(lfile[i],"\n")
    resExport[i,2:4] <- tryexport(lfile[i], mytablename, ifelse(i==1, FALSE,
TRUE))
}

setwd(dbefore)

if(print.log)
{
cat("check database\n")
print(dbListFields(con, mytablename))
print(dbListTables(con))
print(resExport)
}


sumdrv <- NULL
test.try <- try(sumdrv <- summary(drv))

if( !any(class(test.try) == "try-error" ))
{
    test.try <- try(all_cons <- dbListConnections(drv))
    if( any(class(test.try) == "try-error" ))
        traceback()

    if(length(all_cons) > 0)
    {
      for(i in 1:length(all_cons))
      {
        test.try <- try(all_res <- dbListResults(all_cons[[i]]))

        if(length(all_res) > 0)
        {
          for(j in 1:length(all_res))
            test.try <- try( dbClearResult(all_res[[j]]) )
        }
        test.try <- try( dbDisconnect(all_cons[[i]]) )
      }
    }

test.try <- try( dbUnloadDriver(drv) )

}


#-------------------------------------------------------

dodescriptive <- TRUE
dbname <- "mydb"
tablenametodescribe <- "mytable"
desciptvar <- "mycolumnA"
whereSQLcondition3 <- ""
groupbySQLvar <- "mycolumnB"
havingSQLcondition3 <- ""
print.log <- TRUE
#-------------------------------------------------------
# launch scripts
#open DBI connections
beginopen <- proc.time()[3]
if(dodescriptive )
{

drv <- dbDriver("MySQL")
if(print.log) print(summary(drv))
print("---")
con <- dbConnect(drv, dbname=dbname) #as anonymous
if(print.log) print(summary(con))
print("---")
}
endopen <- proc.time()[3]
#compute MCA
begindescribe <- proc.time()[3]
if(dodescriptive )
{

interestvar <- paste("AVG(",desciptvar,"), COUNT(",desciptvar, "),
",groupbySQLvar, sep="")

SQLDescribe <- paste("SELECT ", interestvar ,"FROM", tablenametodescribe,
sep=" ")


if(nchar(whereSQLcondition3) != 0)
{
    SQLDescribe<- paste(SQLDescribe, "WHERE", whereSQLcondition3, sep=" ")
}

if(nchar(groupbySQLvar) != 0)
{
    SQLDescribe <- paste(SQLDescribe, "GROUP BY", groupbySQLvar, sep=" ")
}

if(nchar(havingSQLcondition3) != 0)
{
    SQLDescribe <- paste(SQLDescribe, "HAVING", havingSQLcondition3, sep="
")
}

print(SQLDescribe )

#get info on the database
options(show.error.messages = FALSE)

test.try <- try(resSQL <- dbSendQuery(con, SQLDescribe))

if(class(test.try) == "try-error")
{
    print("------ traceback")
      traceback()
    print("------ message")
      print(test.try[1])
      stop("SQL query failed.")
}
print("---")
print(summary(con))

print("--->>>>")
print(resSQL)
print(summary(resSQL))
print("<<<<---")
options(show.error.messages = TRUE)


#if(print.log) print(summary(resSQL))

#
#resfetched <- fetch(resSQL, n=-1)
#print(summary(resfetched))
#
#datadescribe <- data.frame(resfetched, stringsAsFactors=TRUE)
#
#if(print.log) print(whatis(datadescribe))
#
#
#

}
enddescribe <- proc.time()[3]
#close DBI connections
beginclose <- proc.time()[3]
if(dodescriptive )
{

options(show.error.messages = FALSE)

sumdrv <- NULL
test.try <- try(sumdrv <- summary(drv))

if( !any(class(test.try) == "try-error" ))
{
    test.try <- try(all_cons <- dbListConnections(drv))
    if( any(class(test.try) == "try-error" ))
        traceback()

    if(length(all_cons) > 0)
    {
      for(i in 1:length(all_cons))
      {
        test.try <- try(all_res <- dbListResults(all_cons[[i]]))

        if(length(all_res) > 0)
        {
          for(j in 1:length(all_res))
            test.try <- try( dbClearResult(all_res[[j]]) )
        }
        test.try <- try( dbDisconnect(all_cons[[i]]) )
      }
    }

test.try <- try( dbUnloadDriver(drv) )

}

options(show.error.messages = TRUE)



}
if(print.log) cat("database closing done\n")
endclose <- proc.time()[3]
timeopen <- significativeNumbers(4)(endopen-beginopen)
timedescribe <- significativeNumbers(4)(enddescribe - begindescribe)
timeclose <- significativeNumbers(4)(endclose-beginclose)
time <- timeopen +begindescribe +timeclose


---------------------------------------------------------------- essai.csv

mycolumnA;mycolumnB
1;7
1;11
1;10
1;11
1;11
1;11
1;11
1;11
1;9
1;11
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;11
1;11
1;10
1;11
1;5
1;11
1;11
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;11
1;4
1;4
1;4
1;4
1;4
1;4
1;4
1;4
1;4
1;4
1;10
1;5
1;11
1;4
1;8
1;8
1;8
1;8
1;8
1;8
1;8
1;8
1;9
1;4
1;10
1;10
1;8
1;8
1;8
1;8
1;10
1;10
1;7
1;5
1;10
1;10
1;8
1;3
1;8
1;8
1;11
1;10
1;10
1;8
1;11
1;10
1;9
1;11
1;9
1;11
1;11
1;9
1;9
1;2
1;9
1;9
1;11
1;11
1;11
1;6
1;11
1;9
1;9
1;7
1;4
1;10
1;10
1;8
1;11
1;2
1;9
1;9
1;11
1;9
1;9
1;11
1;7
1;11
1;11
1;8
1;11
1;8
1;7
1;8
1;11
1;9
1;11
1;1
1;11
1;11
1;7
1;11
1;10
1;10
0;8
0;10
0;6
1;10
0;10
1;10
0;10
1;10
0;10
1;10
0;10
1;10
0;10
1;10
1;10
0;10
1;10
0;10
1;10
0;10
1;10
0;10
1;10
1;10
0;10
0;10
1;10
0;10
1;10
0;8
0;8
0;7
0;7
0;7
0;6
0;6
0;6
0;10
0;10
0;5
0;5
0;5
0;5
0;5
0;5
1;5
1;5
0;5
1;5
1;5
1;5
0;5
1;5
1;5
0;5
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;3
0;3
0;3
0;3
0;2
0;2
0;2
0;2
0;9
0;9
0;10
0;10
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;5
1;10
1;7
1;7
1;7
1;7
1;7
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
0;11
1;8
1;4
1;4
1;4
1;4
0;11
1;11
1;11
1;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
1;8
1;8
1;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
1;8
1;8
1;8
1;8
1;8
1;8
1;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
1;5
0;5
0;5
0;5
0;5
0;5
0;8
0;8
0;8
0;8
0;8
0;8
0;4
0;6
0;4
0;8
0;4
0;4
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;8
0;8
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;8
0;7
0;8
0;6
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
1;9
0;11
0;11
0;5
0;11
0;11
0;11
0;11
0;11
0;11
0;11
1;11
0;11
0;10
1;5
0;2
0;2
1;3
0;12
0;12
1;3
1;3
1;3
1;2
1;2
1;2
0;7
0;7
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
1;6
1;6
1;6
0;6
0;6
1;6
1;6
0;6
1;6
0;6
1;6
0;6
0;6
0;6
0;6
1;6
0;6
0;6
1;6
1;6
0;6
0;6
1;6
0;6
1;6
0;6
1;6
1;6
1;6
0;6
0;6
1;6
0;6
1;6
1;6
1;6
0;6
0;6
1;6
1;6
1;6
1;6
0;6
1;6
0;6
1;6
1;6
1;6
0;6
0;6
1;6
0;6
0;6
1;6
1;6
1;6
0;6
1;6
0;6
0;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
0;6
1;6
1;6
1;6
0;6
0;6
1;6
1;6
1;6
0;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;8
0;8
1;8
0;8
1;8
1;8
1;8
1;8
1;7
0;8
0;7
0;9
1;7
1;7
1;7
1;11
1;11
1;11
1;11
1;8
1;8
1;8
1;8
1;8
1;8
1;8
1;8
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;10
0;9
0;9
0;6
0;7
0;7
0;7
0;7
0;5
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;11
0;8
0;8
0;8
0;8
0;10
0;6
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;8
0;11
0;8
0;8
0;9
0;5
0;5
0;5
0;5
0;5
0;5
1;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;7
0;5
0;9
0;7
0;11
0;10
0;7
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;8
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;9
1;9
0;8
0;8
0;9
0;7
0;7
0;6
0;8
0;8
0;8
0;6
0;6
0;6
0;6
0;8
0;6
0;6
0;9
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
1;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;11
0;9
0;6
0;6
0;7
0;6
0;8
0;8
0;8
0;8
0;8
0;8
0;9
0;9
0;9
0;9
0;11
0;11
0;3
0;3
0;3
0;3
1;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;6
0;9
0;6
0;6
0;8
0;8
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
1;3
0;3
0;3
0;3
0;3
0;5
0;5
0;5
0;6
0;7
0;7
0;7
0;7
0;6
0;5
0;5
0;10
0;7
0;7
0;7
0;10
0;6
0;10
0;3
0;10
0;3
0;4
0;3
0;3
0;7
0;3
0;3
0;9
0;7
0;9
0;9
0;9
0;9
0;9
0;9
0;9
0;8
0;8
0;8
0;8
0;8
0;7
0;7
0;8
0;6
0;10
0;10
0;8
0;7
0;8
0;2
0;5
0;8
0;7
0;8
0;6
0;6
0;7
0;8
0;7
0;7
0;10
0;5
0;6
0;7
0;7
0;6
0;7
0;7
0;7
0;6
0;7
0;6
0;6
0;7
0;7
0;10
0;10
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;7
0;7
0;10
0;6
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;7
0;8
0;7
0;5
0;7
0;7
0;5
0;5
0;3
0;7
0;7
0;6
0;7
0;6
0;9
0;6
0;6
0;6
0;6
0;6
0;6
0;5
0;5
0;5
0;5
0;2
0;10
0;10
0;10
0;10
0;10
0;10
0;10
0;10
0;8
0;8
0;8
0;8
0;8
0;8
0;8
0;7
0;7
0;7
0;7
0;7
0;7
0;7
0;2
0;7
0;7
0;7
0;7
0;7
0;7
0;6
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;10
0;5
0;5
0;5
0;5
0;7
0;7
0;7
0;7
0;8
0;9
0;11
0;9
0;9
0;7
0;7
0;7
0;7
0;7
0;6
0;6
0;2
0;6
0;6
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;6
0;10
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;6
0;6
0;7
0;10
0;7
0;9
0;9
0;9
0;9
0;9
0;9
0;8
0;9
0;7
0;9
0;10
0;10
0;6
0;8
0;11
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;6
0;5
0;6
0;5
0;6
0;6
0;6
0;6
1;10
1;9
0;10
0;6
1;11
1;9
1;6
0;6
1;6
0;7
1;7
1;7
1;9
1;6
1;6
1;10
1;6
1;6
1;11
1;6
1;6
0;7
1;6
0;5
0;3
0;6
1;6
1;6
1;6
1;6
1;6
1;6
0;6
1;6
1;1
1;6
1;6
1;6
1;6
1;6
1;6
1;6
1;6
0;6
1;6
0;6
1;6
0;6
1;6
1;6
0;5
0;7
0;10
0;5
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
1;1
0;1
0;1
0;1
0;1
0;1
0;1
0;11
0;2
1;11
1;11
0;3
1;5
1;5
1;3
1;3
1;3
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
1;2
1;2
1;2
1;2
1;2
0;2
0;1
0;1
0;1
0;1
0;1
0;1
0;1
1;11
1;11
1;11
1;11
1;11
1;11
1;8
1;8
1;8
1;8
1;11
1;11
1;11
1;11
1;11
1;11
1;11
1;11
1;11
1;11
1;8
1;11
1;11
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
1;11
0;1
0;1
0;1
0;1
0;1
0;9
0;11
0;11
0;11
0;7
1;7
0;7
0;7
0;7
0;7
0;5
0;5
0;5
0;9
0;5
0;9
0;5
0;5
0;4
0;11
0;6
0;8
0;8
0;4
0;4
0;4
0;11
0;11
0;11
0;8
0;8
0;11
0;3
0;11
0;11
0;2
0;2
0;2
0;9
0;11
0;2
0;2
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
1;1
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
1;5
0;5
1;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;5
0;4
0;4
0;4
0;4
0;4
0;5
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
0;1
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;2
1;2
1;2
1;6
0;7
0;6
1;6
1;6
0;6
1;5
1;5
1;5
1;5
1;5
0;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
0;5
1;5
1;5
1;5
1;5
1;5
0;5
1;5
0;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
0;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
1;5
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;4
0;7
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;3
0;2
0;2
0;2
0;2
0;2
0;2
0;2
1;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2
0;2


-- 
Christophe DUTANG
Ph. D. student at ISFA

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-db/attachments/20090405/90348b13/attachment.html>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: essai.csv
Type: application/octet-stream
Size: 10993 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-db/attachments/20090405/90348b13/attachment.obj>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mycode.R
Type: application/octet-stream
Size: 10628 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-db/attachments/20090405/90348b13/attachment-0001.obj>


More information about the R-sig-DB mailing list