# -*- r -*- # @@PLEAC@@_NAME # @@SKIP@@ R # @@PLEAC@@_WEB # @@SKIP@@ http://www.r-project.org # @@PLEAC@@_1.0 #----------------------------- string <- '\n' # a "newline" character string <- '\\n' # two characters, \ and an n #----------------------------- string <- "\n" # a "newline" character string <- "\\n" # two characters, \ and an n #----------------------------- string <- "Jon 'Maddog' Orwant" # literal single quotes string <- 'Jon \'Maddog\' Orwant' # literal single quotes #----------------------------- string <- 'Jon "Maddog" Orwant' # literal double quotes string <- "Jon \"Maddog\" Orwant" # literal double quotes #----------------------------- string <- "This is a multiline string which will include a newline character" #----------------------------- string <- paste( "This is also a multiline", " string made from", " concatenating a string list" ,sep="") #----------------------------- # @@PLEAC@@_1.1 #----------------------------- value <- substr (string, start, stop) value <- substring(string, start, stop) value <- substring(string, start) #----------------------------- # Can only replace up to the same size string substring(string, start, stop) <- newstring #----------------------------- string <- "This is what you have" first <- substr (string,1,1) # "T" first <- substring(string,1,1) # "T" start <- substr (string,6,7) # "is" start <- substring(string,6,7) # "is" rest <- substring(string, 14) # "you have" #----------------------------- # Negative indexing not explicitly supported last <- substring(string,nchar(string)) # "e" end <- substring(string,nchar(string)-3) # "have" piece <- substr (string,nchar(string)-7,nchar(string)-5) # "you" piece <- substring(string,nchar(string)-7,nchar(string)-5) # "you" #----------------------------- string <- "This is what you have" string string <- 'Jon \'Maddog\' Orwant\n' # literal single quotes string # "Jon 'Maddog' Orwant\n" cat(string) # Jon 'Maddog' Orwant #----------------------------- substr(string,6,7) <- "be" # This be what you have string <- paste(substr(string,1,5),"wasn't",substring(string,8),sep="") string <- paste(substr(string,1,nchar(string)-12),"ondrous",sep="") # replace last 12 characters #This wasn't wondrous string <- substr(string,2,nchar(string)) # delete first character #his wasn't wondrous string <- substr(string,1,nchar(string)-10) # delete last 10 characters #his wasn' #----------------------------- # You can test substrings if ( any(grep("pattern",substring(string,10))) ) cat("Pattern matches in last 10 characters\n") if ( any(regexpr("pattern",substring(string,10))>0) ) cat("Pattern matches in last 10 characters\n") # substitute "at" for "is", restricted to first five characters substr(string, 1, 5) <- gsub("is","at",string) #----------------------------- # @@PLEAC@@_1.2 #----------------------------- a <- if ( exists("b") ) b else c #----------------------------- dir <- if ( exists(commandArgs()[2]) ) commandArgs()[2] else "/tmp" #----------------------------- user <- Sys.getenv("USER") user <- Sys.getenv("LOGNAME") user <- Sys.info()[7] user <- Sys.info()["user"] user <- Sys.info()[6] user <- Sys.info()["login"] # @@PLEAC@@_1.3 #----------------------------- # No built in way to swap without a temporary variable #----------------------------- temp <- a ; a <- b ; b <- temp #----------------------------- # @@PLEAC@@_1.4 #----------------------------- num <- as.integer(charToRaw(char)) char <- rawToChar(as.raw(num)) #----------------------------- char <- sprintf("%s", rawToChar(as.raw(num))) sprintf("Number %d is character %s", num, rawToChar(as.raw(num))) # Number 101 is character e #----------------------------- ascii <- as.integer(charToRaw(string)) string <- rawToChar(as.raw(ascii)) #----------------------------- ascii_value <- as.integer(charToRaw("e")) # now 101 character <- rawToChar(as.raw(101)) # now "e" #----------------------------- sprintf("Number %d is character %s", as.integer(101), rawToChar(as.raw (101))) sprintf("Number %g is character %s", 101, rawToChar(as.raw (101))) #----------------------------- ascii_character_numbers <- as.integer(charToRaw("sample")) # 115 97 109 112 108 101 word <- rawToChar(as.raw(ascii_character_numbers)) word <- rawToChar(as.raw(c(115, 97, 109, 112, 108, 101))) # same cat(word,"\n") # sample #----------------------------- hal <- "HAL" ascii <- as.integer(charToRaw(hal)) ascii <- ascii+1 # add one to each ASCII value ibm <- rawToChar(as.raw(ascii)) cat(ibm,"\n") # prints "IBM" #-----------------------------