welcome: please sign in

Revision 6 vom 2015-03-15 14:51:00

Nachricht löschen
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[3,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 8

   1 if(sum(str_detect(tmp[,1],"CH|GA|IJ|Kj|RMK"))) print(paste("id",tmp[3,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))}