s <- "Of Mice and Men, Goodbye."
ss <- "Of Mole and Men, Goodbye."
sss <- "Of Foo and Bar, Tag!"
regexpr(" and Men", c(s, ss, sss), perl = TRUE) # 1
regexpr("Mice and Men", c(s, ss, sss), perl = TRUE) # 2
regexpr("(?<=Mice) and Men", c(s, ss, sss), perl = TRUE) # 3
regexpr("Of .*(?=and Men)", c(s, ss, sss), perl = TRUE) # 4
regexpr("Of .* and Men", c(s, ss, sss), perl = TRUE) # 5
someVar = String
s <- "someVar = String"
regex <- "(?<=someVar = )String"
regmatch <- regexpr(regex, s, perl = TRUE)
regmatches(s, regmatch) # Returns "String"
class(mtcars) <- c("tt", class(mtcars))
class(mtcars)
is(mtcars, "tt")
[COLOR="#696969"]> class(mtcars) <- c("tt", class(mtcars))
> class(mtcars)
[1] "tt" "data.frame"
> is(mtcars, "tt")
[1] TRUE[/COLOR]
5i
# [1] 0+5i
5i * (1+2i)
# [1] -10+5i
x <- "ABCDBBABDC"
x2 <- gsub("A", "PLACE_HOLDER", x)
x3 <- gsub("B", "A", x2)
gsub("PLACE_HOLDER", "B", x3)
x <- "ABCDBBABDC"
chartr("AB", "BA", x)
y <- "1234567"
chartr("1234", "4321", y)
x <- rnorm(100000)
FOR <- function() {
m <- rep(NA, 100000)
for (i in 1:100000) {
m[i] <- x[i] *100
}
}
LAPPLY_UNLIST <- function() unlist(lapply(x, "*", 100))
LAPPLY_C <- function() c(lapply(x, "*", 100))
VECT <- function() x*100
SAPPLY <- function() sapply(x, "*", 100, USE.NAMES = FALSE)
VAPPLY <- function() vapply(x, "*", 0, 100, USE.NAMES = FALSE)
library(microbenchmark)
microbenchmark(
FOR(),
LAPPLY_UNLIST(),
LAPPLY_C(),
SAPPLY(),
VAPPLY(),
VECT(),
times=100L)
## Unit: microseconds
## expr min lq median uq max neval
## FOR() 215543.498 220728.646 222126.280 224245.356 293300.641 100
## LAPPLY_UNLIST() 4412.157 4455.774 4511.522 4591.760 8728.681 100
## LAPPLY_C() 4539.512 4588.261 4635.843 4740.807 8838.308 100
## SAPPLY() 9059.896 9205.910 9366.387 9718.360 13330.236 100
## VAPPLY() 4255.879 4313.026 4378.569 4526.682 7950.559 100
## VECT() 11.196 16.095 18.194 21.926 41.986 100
x <- matrix(rnorm(10000), ncol = 100)
y <- matrix(rnorm(10000), ncol = 100)
FOR <- function() {
m <- matrix(rep(NA, 10000), ncol = 100)
for (i in 1:100) {
for (j in 1:100) {
m[j, i] <- x[j, 1] * x[j, i]
}
}
}
MAPPLY <- function() mapply("*", x, y)
library(microbenchmark)
microbenchmark(
FOR(),
MAPPLY(),
times=100L)
## Unit: milliseconds
## expr min lq median uq max neval
## FOR() 23.15566 24.11758 26.30850 26.83961 31.35486 100
## MAPPLY() 16.56728 16.95471 17.84852 19.89972 79.74163 100
x <- try(sum(letters))
inherits(x, "try-error")
## > x <- try(sum(letters))
## Error in sum(letters) : invalid 'type' (character) of argument
## > inherits(x, "try-error")
## [1] TRUE
basename("dir/foo.csv") # foo.csv
dirname("dir/foo.csv") # dir
dirname("foo.csv") # .
createMyTable <- function(dbname, data_src, tblname, sep = ";") # Yes, my file is really ";" separated. Old database artifacts!
{
require(RSQLite)
# Make Cleaner Field Names
fields <- tolower(strsplit(readLines(data_src, n=1), sep)[[1]])
fields <- gsub("1st", "first", fields)
fields <- gsub("2nd", "second", fields)
fields <- make.names(gsub("-|:|\\.|\\(|\\)", "", fields)) # removes - : . ( and )
fields <- gsub("\\.\\.", "\\.", fields) # remove any missed additional '.' (extra spaces and such)
fields <- gsub("\\.", "_", fields) # Convert '.' word separation to "_" word separation
con <- dbConnect(SQLite(), dbname = dbname)
on.exit(expr=dbDisconnect(con), add=TRUE)
dbWriteTable(conn = con, name = tblname, value = data_src, sep = sep,
row.names = FALSE, col.names = fields, header = TRUE)
}
plot(rnorm(1000),rnorm(1000)) # could be any plot
zm()