welcome: please sign in

Seiteninhalt hochladen

Sie können für die unten genannte Seite Inhalt hochladen. Wenn Sie den Seitennamen ändern, können Sie auch Inhalt für eine andere Seite hochladen. Wenn der Seitenname leer ist, leiten wir den Seitennamen vom Dateinamen ab.

Datei, aus der der Seiteninhalt geladen wird
Seitenname
Kommentar

Revision 11 vom 2015-03-15 15:05:21

location: RstatisTik / RstatisTikPortal / RcourSe / FinalFunction

Final Functions

Funtion: Reading File

Here is the function as whole, below we go through it line by line.

   1 read.file <- function(file,skip,verbose=T){
   2     if(verbose) print(paste("read", file))
   3     tmp <- read.table(file,skip = skip,sep = "\t",
   4                       header=T,na.strings = c(" +",""),
   5                       fill=T)
   6     
   7     tmp <- tmp[!is.na(tmp$Subject),] 
   8 
   9     if(sum(!str_detect(tmp[,1],"^0[012][0-9]_[1-8]$|^0[012][0-9]_test[12]$")))
  10         print(paste("id",tmp$Subject[1]))
  11     
  12     if(sum(tmp$Stim.Type %in% c("hit","incorrect"))==0) return(NULL)
  13 
  14     tmp <- lapply(tmp,function(x) {
  15         if( class(x) %in% c("character","factor") ){
  16             x <- factor(gsub(" ","",as.character(x)))
  17             return(x)}else{ return(x) }})
  18     
  19     tmp <- as.data.frame(tmp)
  20     
  21     pause <- which(tmp$Event.Type=="Picture" & tmp$Code=="Pause")
  22     if(length(pause)>0){
  23         drei <- which(tmp$Code==3 & !is.na(tmp$Code))
  24         drei <- drei[drei > pause][1:2]
  25         if(pause + 1 < drei[1]){
  26             tmp <- tmp[-(pause:drei[2]),]
  27         }}
  28 
  29     
  30     tmp <- tmp[!(tmp$Event.Type %in% c("Pause","Resume")), ]
  31 
  32     first.pic <- min(which(tmp$Event.Type=="Picture" & !is.na(tmp$Event.Type) )) - 1
  33     tmp <- tmp[-(1:first.pic),]
  34 
  35     last.pic <- min(which(tmp$Event.Type=="Picture" & !is.na(tmp$Event.Type) &
  36                               tmp$Code=="Fertig!" & !is.na(tmp$Code)))
  37     tmp <- tmp[-(last.pic:nrow(tmp)),]
  38 
  39     zeilen <- which(tmp$Event.Type %in% c("Response"))
  40     zeilen <- sort(unique(c(zeilen,zeilen-1)))
  41     zeilen <- zeilen[zeilen>0]
  42     tmp <- tmp[zeilen,]
  43     
  44     responses <- which(tmp$Code %in% c(1,2))
  45     events <- responses-1
  46     tmp$Type <- NA
  47     tmp$Type[responses] <- as.character(tmp$Event.Type[events])
  48 
  49     if(length(tmp$Type[responses])!=length(tmp$Event.Type[events])) { print(file)}
  50     tmp$Event.Code <- NA
  51     tmp$Event.Code[responses] <- as.character(tmp$Code[events])
  52     tmp$Time1 <- NA
  53     tmp$Time1[responses] <- tmp$Time[events]
  54     tmp$Stim.Type[responses] <- as.character(tmp$Stim.Type[events])
  55     tmp$Duration[responses] <- as.character(tmp$Duration[events])
  56     tmp$Uncertainty.1[responses] <- as.character(tmp$Uncertainty.1[events])
  57     tmp$ReqTime[responses] <- as.character(tmp$ReqTime[events])
  58     tmp$ReqDur[responses] <- as.character(tmp$ReqDur[events])
  59     tmp$Pair.Index[responses] <- as.character(tmp$Pair.Index[events])
  60     
  61 
  62     tmp$Stim.Type[responses] <- as.character(tmp$Stim.Type[events])
  63     tmp <- tmp[tmp$Event.Type=="Response" & !is.na(tmp$Type),]
  64     tmp <- tmp[tmp$Type=="Picture" & !is.na(tmp$Type),]
  65     return(tmp)
  66 }

line 1

   1  read.file <- function(file,skip=3,verbose=T){

line 2

   1  if(verbose) print(paste("read", file))

Line 3-5

   1  tmp <- read.table(file,skip = skip,sep = "\t",
   2                           header=T,na.strings = c(" +",""),
   3                           fill=T)

Line 7

   1     tmp <- tmp[!is.na(tmp$Subject),] 

Line 9-10

   1     if(sum(!str_detect(tmp$Subject,"^0[012][0-9]_[1-8]$|^0[012][0-9]_test[12]$")))
   2         print(paste("id",tmp$Subject[1]))

Line 18:

Line 22:

Funtion: Reading All Files from a DIRECTORY

   1 read.files <- function(filesdir,skip=3,...){
   2     files <- paste(filedir,dir(filedir),sep="/")
   3     Reduce(rbind,lapply(files,read.file,skip=skip))}