SCM

SCM Repository

[tm] Diff of /pkg/R/corpus.R
ViewVC logotype

Diff of /pkg/R/corpus.R

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 74, Tue Nov 21 20:04:17 2006 UTC revision 75, Wed Nov 22 14:37:18 2006 UTC
# Line 514  Line 514 
514          l.meta[[i]] <- c(l.meta[[i]], list(origin = Origin(object[[i]])))          l.meta[[i]] <- c(l.meta[[i]], list(origin = Origin(object[[i]])))
515          l.meta[[i]] <- c(l.meta[[i]], list(heading = Heading(object[[i]])))          l.meta[[i]] <- c(l.meta[[i]], list(heading = Heading(object[[i]])))
516      }      }
     # TODO: Handle entries (\code{m} with length greater 1, i.e., lists)  
517      for (i in 1:length(l.meta)) {      for (i in 1:length(l.meta)) {
518          for (j in 1:length(l.meta[[i]])) {          for (j in 1:length(l.meta[[i]])) {
519              m <- l.meta[[i]][[j]]              m <- l.meta[[i]][[j]]
# Line 522  Line 521 
521              if (!(m.name %in% names(query.df))) {              if (!(m.name %in% names(query.df))) {
522                  before <- rep(NA, i - 1)                  before <- rep(NA, i - 1)
523                  after <- rep(NA, length(l.meta) - i)                  after <- rep(NA, length(l.meta) - i)
524                    if (length(m) > 1) {
525                        nl <- vector("list", length(l.meta))
526                        nl[1:(i-1)] <- before
527                        nl[i] <- list(m)
528                        nl[(i+1):length(l.meta)] <- after
529                        insert <- data.frame(I(nl), stringsAsFactors = FALSE)
530                    }
531                    else
532                  insert <- c(before, m, after)                  insert <- c(before, m, after)
533                  query.df <- cbind(query.df, insert, stringsAsFactors = FALSE)                  query.df <- cbind(query.df, insert, stringsAsFactors = FALSE)
534                  names(query.df)[length(query.df)] <- m.name                  names(query.df)[length(query.df)] <- m.name
# Line 529  Line 536 
536              else {              else {
537                  if (is.null(m))                  if (is.null(m))
538                      m <- NA                      m <- NA
539                  #if (length(m) > 1)                  if (length(m) > 1) {
540                  #    query.df[i,names(l.meta[[i]])] <- list(m)                      rl <- query.df[ , m.name]
541                  #else                      rl[i] <- list(m)
542                        query.df[ , m.name] <- data.frame(I(rl), stringsAsFactors = FALSE)
543                    }
544                    else
545                      query.df[i,m.name] <- m                      query.df[i,m.name] <- m
546              }              }
547          }          }
# Line 542  Line 552 
552      return(result)      return(result)
553  }  }
554    
 #s_filter <- function(object, s, ..., DMetaData) {  
 #    b <- TRUE  
 #    for (tag in names(s)) {  
 #        if (tag %in% names(LocalMetaData(object))) {  
 #            b <- b && any(grep(s[[tag]], LocalMetaData(object)[[tag]]))  
 #        } else if (tag %in% names(DMetaData)){  
 #            b <- b && any(grep(s[[tag]], DMetaData[[tag]]))  
 #        } else {  
 #            b <- b && any(grep(s[[tag]], eval(call(tag, object))))  
 #        }  
 #    }  
 #    return(b)  
 #}  
   
555  setGeneric("fulltext_search_filter", function(object, pattern, ...) standardGeneric("fulltext_search_filter"))  setGeneric("fulltext_search_filter", function(object, pattern, ...) standardGeneric("fulltext_search_filter"))
556  setMethod("fulltext_search_filter",  setMethod("fulltext_search_filter",
557            signature(object = "PlainTextDocument", pattern = "character"),            signature(object = "PlainTextDocument", pattern = "character"),
# Line 605  Line 601 
601  #              return(object)  #              return(object)
602  #          })  #          })
603    
 # TODO: Handle metadata in document slots  
604  setGeneric("prescind_meta", function(object, meta) standardGeneric("prescind_meta"))  setGeneric("prescind_meta", function(object, meta) standardGeneric("prescind_meta"))
605  setMethod("prescind_meta",  setMethod("prescind_meta",
606            signature(object = "TextDocCol", meta = "character"),            signature(object = "TextDocCol", meta = "character"),
607            function(object, meta) {            function(object, meta) {
608                for (m in meta) {                for (m in meta) {
609                      if (m %in% c("Author", "DateTimeStamp", "Description", "ID", "Origin", "Heading")) {
610                          local.m <- lapply(object, m)
611                          local.m <- lapply(local.m, function(x) if (is.null(x)) return(NA) else return(x))
612                          local.m <- unlist(local.m)
613                          object@DMetaData <- cbind(DMetaData(object), data.frame(m = local.m), stringsAsFactors = FALSE)
614                          names(object@DMetaData)[length(object@DMetaData)] <- m
615                      }
616                      else {
617                    local.meta <- lapply(object, LocalMetaData)                    local.meta <- lapply(object, LocalMetaData)
618                    local.m <- lapply(local.meta, "[[", m)                    local.m <- lapply(local.meta, "[[", m)
619                    local.m <- lapply(local.m, function(x) if (is.null(x)) return(NA) else return(x))                    local.m <- lapply(local.m, function(x) if (is.null(x)) return(NA) else return(x))
# Line 621  Line 624 
624                    object@DMetaData <- cbind(DMetaData(object), data.frame(m = local.m), stringsAsFactors = FALSE)                    object@DMetaData <- cbind(DMetaData(object), data.frame(m = local.m), stringsAsFactors = FALSE)
625                    names(object@DMetaData)[length(object@DMetaData)] <- m                    names(object@DMetaData)[length(object@DMetaData)] <- m
626                }                }
627                  }
628                return(object)                return(object)
629            })            })
630    

Legend:
Removed from v.74  
changed lines
  Added in v.75

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge