inst/doc/Ch_introduction_to_R.R

### R code from vignette source 'Ch_introduction_to_R.Rnw'

###################################################
### code chunk number 1: setup
###################################################
rm(list = ls())
s <- search()[-1]
s <- s[-match(c("package:base", "package:stats", "package:graphics", "package:grDevices",
                "package:utils", "package:datasets", "package:methods", "Autoloads"), s)]
if (length(s) > 0) sapply(s, detach, character.only = TRUE)
if (!file.exists("tables")) dir.create("tables")
if (!file.exists("figures")) dir.create("figures")
set.seed(290875)
options(prompt = "R> ", continue = "+  ",
    width = 63, # digits = 4, 
    show.signif.stars = FALSE,
    SweaveHooks = list(leftpar = function() 
        par(mai = par("mai") * c(1, 1.05, 1, 1)),
        bigleftpar = function()
        par(mai = par("mai") * c(1, 1.7, 1, 1))))
HSAURpkg <- require("HSAUR2")
if (!HSAURpkg) stop("cannot load package ", sQuote("HSAUR2"))
rm(HSAURpkg)
 ### </FIXME> hm, R-2.4.0 --vanilla seems to need this
a <- Sys.setlocale("LC_ALL", "C")
 ### </FIXME>
book <- TRUE
refs <- cbind(c("AItR", "DAGD", "SI", "CI", "ANOVA", "MLR", "GLM", 
                "DE", "RP", "GAM", "SA", "ALDI", "ALDII", "SIMC", "MA", "PCA", 
                "MDS", "CA"), 1:18)
ch <- function(x) {
    ch <- refs[which(refs[,1] == x),]
    if (book) {
        return(paste("Chapter~\\\\ref{", ch[1], "}", sep = ""))
    } else {
        return(paste("Chapter~", ch[2], sep = ""))
    }
}
if (file.exists("deparse.R"))
    source("deparse.R")

setHook(packageEvent("lattice", "attach"), function(...) {
    lattice.options(default.theme = 
        function()
            standard.theme("pdf", color = FALSE))
    })


###################################################
### code chunk number 2: singlebook
###################################################
book <- FALSE


###################################################
### code chunk number 3: AItR-welcome
###################################################
HSAUR2:::Rwelcome()


###################################################
### code chunk number 4: AItR-promt
###################################################
options(prompt = "> ")


###################################################
### code chunk number 5: AItR-welcome
###################################################
options(prompt = "R> ")


###################################################
### code chunk number 6: AItR-firstex
###################################################
x <- sqrt(25) + 2


###################################################
### code chunk number 7: AItR-firstex-print
###################################################
x


###################################################
### code chunk number 8: AItR-firstex-print
###################################################
print(x)


###################################################
### code chunk number 9: AItR-recommended
###################################################
colwidth <- 4
ip <- installed.packages(priority = "high")
pkgs <- unique(ip[,"Package"])
pkgs <- paste("\\Rpackage{", pkgs, "}", sep = "")
nrows <- ceiling(length(pkgs) / colwidth)
cat(paste(c("\\begin{tabular}{", paste(rep("l", colwidth), collapse=""), "}"), collapse = ""), 
    "\n", file = "tables/rec.tex", append = FALSE)
for (i in 1:nrows) {
    cat(paste(pkgs[(1:colwidth) + (i-1)*colwidth], collapse = " & "), 
        file = "tables/rec.tex", append = TRUE)
    cat("\\\\ \n", file = "tables/rec.tex", append = TRUE)
}
cat("\\end{tabular}\n", file = "tables/rec.tex", append = TRUE)
rm(ip, nrows)


###################################################
### code chunk number 10: AItR-CRAN
###################################################
cp <- available.packages(contriburl = "http://CRAN.r-project.org/src/contrib")
ncp <- sum(!rownames(cp) %in% pkgs)
rm(cp, pkgs)


###################################################
### code chunk number 11: AItR-rm
###################################################
rm(ncp, colwidth, i)


###################################################
### code chunk number 12: AItR-install-packages (eval = FALSE)
###################################################
## install.packages("sandwich")


###################################################
### code chunk number 13: AItR-library (eval = FALSE)
###################################################
## library("sandwich")


###################################################
### code chunk number 14: AItR-help (eval = FALSE)
###################################################
## help("mean")


###################################################
### code chunk number 15: AItR-help-lib (eval = FALSE)
###################################################
## help(package = "sandwich")


###################################################
### code chunk number 16: AItR-help-lib (eval = FALSE)
###################################################
## vignette("sandwich", package = "sandwich")


###################################################
### code chunk number 17: AItR-Forbes2000
###################################################
data("Forbes2000", package = "HSAUR2")
ls()


###################################################
### code chunk number 18: AItR-Forbes2000-ls
###################################################
x <- c("x", "Forbes2000")
print(x)


###################################################
### code chunk number 19: AItR-Forbes2000-print (eval = FALSE)
###################################################
## print(Forbes2000)


###################################################
### code chunk number 20: AItR-Forbes2000-print
###################################################
print(Forbes2000[1:3,])
cat("...\n")


###################################################
### code chunk number 21: AItR-Forbes2000-str (eval = FALSE)
###################################################
## str(Forbes2000)


###################################################
### code chunk number 22: AItR-Forbes2000-str
###################################################
str(Forbes2000, vec.len = 2, strict.width = "cut", width = 60)


###################################################
### code chunk number 23: AItR-Forbes2000-help (eval = FALSE)
###################################################
## help("Forbes2000")


###################################################
### code chunk number 24: AItR-Forbes2000-df
###################################################
class(Forbes2000)


###################################################
### code chunk number 25: AItR-Forbes2000-dim
###################################################
dim(Forbes2000)


###################################################
### code chunk number 26: AItR-Forbes2000-nrow-ncol
###################################################
nrow(Forbes2000)
ncol(Forbes2000)


###################################################
### code chunk number 27: AItR-Forbes2000-names
###################################################
names(Forbes2000)


###################################################
### code chunk number 28: AItR-Forbes2000-rank
###################################################
class(Forbes2000[,"rank"])


###################################################
### code chunk number 29: AItR-Forbes2000-length
###################################################
length(Forbes2000[,"rank"])


###################################################
### code chunk number 30: AItR-Forbes2000-one-to-three
###################################################
1:3
c(1,2,3)
seq(from = 1, to = 3, by = 1)


###################################################
### code chunk number 31: AItR-Forbes2000-name
###################################################
class(Forbes2000[,"name"])
length(Forbes2000[,"name"]) 


###################################################
### code chunk number 32: AItR-Forbes2000-first
###################################################
Forbes2000[,"name"][1]


###################################################
### code chunk number 33: AItR-Forbes2000-category
###################################################
class(Forbes2000[,"category"])


###################################################
### code chunk number 34: AItR-Forbes2000-nlevels
###################################################
nlevels(Forbes2000[,"category"])


###################################################
### code chunk number 35: AItR-Forbes2000-levels (eval = FALSE)
###################################################
## levels(Forbes2000[,"category"])


###################################################
### code chunk number 36: AItR-Forbes2000-levels
###################################################
levels(Forbes2000[,"category"])[1:3]
cat("...\n")


###################################################
### code chunk number 37: AItR-Forbes2000-table (eval = FALSE)
###################################################
## table(Forbes2000[,"category"])


###################################################
### code chunk number 38: AItR-Forbes2000-table
###################################################
table(Forbes2000[,"category"])[1:3]
cat("...\n")


###################################################
### code chunk number 39: AItR-Forbes2000-sales
###################################################
class(Forbes2000[,"sales"])


###################################################
### code chunk number 40: AItR-Forbes2000-numsum
###################################################
median(Forbes2000[,"sales"])
mean(Forbes2000[,"sales"])
range(Forbes2000[,"sales"])


###################################################
### code chunk number 41: AItR-Forbes2000-summary
###################################################
summary(Forbes2000[,"sales"])


###################################################
### code chunk number 42: AItR-Forbes2000-files
###################################################
pkgpath <- system.file(package = "HSAUR2")
mywd <- getwd()
filep <- file.path(pkgpath, "rawdata")
setwd(filep)


###################################################
### code chunk number 43: AItR-Forbes2000-read.table
###################################################
csvForbes2000 <- read.table("Forbes2000.csv", 
    header = TRUE, sep = ",", row.names = 1)


###################################################
### code chunk number 44: AItR-Forbes2000-csv-names
###################################################
class(csvForbes2000[,"name"])


###################################################
### code chunk number 45: AItR-Forbes2000-read.table2
###################################################
csvForbes2000 <- read.table("Forbes2000.csv",
    header = TRUE, sep = ",", row.names = 1,
    colClasses = c("character", "integer", "character", 
        "factor", "factor", "numeric", "numeric", "numeric", 
        "numeric"))
class(csvForbes2000[,"name"])   


###################################################
### code chunk number 46: AItR-Forbes2000-all.equal
###################################################
all.equal(csvForbes2000, Forbes2000)


###################################################
### code chunk number 47: AItR-Forbes2000-classes
###################################################
classes <- c("character", "integer", "character", "factor", 
    "factor", "numeric", "numeric", "numeric", "numeric")
length(classes)
class(classes)


###################################################
### code chunk number 48: AItR-Forbes2000-RODBC (eval = FALSE)
###################################################
## library("RODBC")
## cnct <- odbcConnectExcel("Forbes2000.xls")
## sqlQuery(cnct, "select * from \"Forbes2000\\$\"")


###################################################
### code chunk number 49: AItR-Forbes2000-RODBC
###################################################
setwd(mywd)


###################################################
### code chunk number 50: AItR-Forbes2000-write.table
###################################################
write.table(Forbes2000, file = "Forbes2000.csv", sep = ",", 
            col.names = NA)


###################################################
### code chunk number 51: AItR-Forbes2000-save
###################################################
save(Forbes2000, file = "Forbes2000.rda")


###################################################
### code chunk number 52: AItR-Forbes2000-list
###################################################
list.files(pattern = "\\.rda")


###################################################
### code chunk number 53: AItR-Forbes2000-load
###################################################
load("Forbes2000.rda")


###################################################
### code chunk number 54: AItR-Forbes2000-vector-companies
###################################################
companies <- Forbes2000[,"name"]


###################################################
### code chunk number 55: AItR-Forbes2000-vector-indexing
###################################################
companies[1]


###################################################
### code chunk number 56: AItR-Forbes2000-vector-indexing
###################################################
1:3
companies[1:3]


###################################################
### code chunk number 57: AItR-Forbes2000-vector-negative-indexing
###################################################
companies[-(4:2000)]


###################################################
### code chunk number 58: AItR-Forbes2000-top-three
###################################################
Forbes2000[1:3, c("name", "sales", "profits", "assets")]


###################################################
### code chunk number 59: AItR-Forbes2000-list-extract
###################################################
companies <- Forbes2000$name


###################################################
### code chunk number 60: AItR-Forbes2000-vector-companies
###################################################
companies <- Forbes2000[,"name"]


###################################################
### code chunk number 61: AItR-Forbes2000-sales
###################################################
order_sales <- order(Forbes2000$sales)


###################################################
### code chunk number 62: AItR-Forbes2000-sales-small
###################################################
companies[order_sales[1:3]]


###################################################
### code chunk number 63: AItR-Forbes2000-order
###################################################
Forbes2000[order_sales[c(2000, 1999, 1998)],
           c("name", "sales", "profits", "assets")]


###################################################
### code chunk number 64: AItR-Forbes2000-logical
###################################################
Forbes2000[Forbes2000$assets > 1000,
           c("name", "sales", "profits", "assets")]


###################################################
### code chunk number 65: AItR-Forbes2000-logical2
###################################################
table(Forbes2000$assets > 1000)


###################################################
### code chunk number 66: AItR-Forbes2000-NA
###################################################
na_profits <- is.na(Forbes2000$profits)
table(na_profits)
Forbes2000[na_profits, 
           c("name", "sales", "profits", "assets")]


###################################################
### code chunk number 67: AItR-Forbes2000-complete-cases
###################################################
table(complete.cases(Forbes2000))


###################################################
### code chunk number 68: AItR-Forbes2000-UK
###################################################
UKcomp <- subset(Forbes2000, country == "United Kingdom")
dim(UKcomp)


###################################################
### code chunk number 69: AItR-Forbes2000-summary
###################################################
summary(Forbes2000)


###################################################
### code chunk number 70: AItR-Forbes2000-summary-output
###################################################
summary(Forbes2000)


###################################################
### code chunk number 71: AItR-Forbes2000-lapply (eval = FALSE)
###################################################
## lapply(Forbes2000, summary)


###################################################
### code chunk number 72: AItR-Forbes2000-tapply-category
###################################################
mprofits <- tapply(Forbes2000$profits, 
                   Forbes2000$category, median, na.rm = TRUE)


###################################################
### code chunk number 73: AItR-Forbes2000-medianNA
###################################################
median(Forbes2000$profits)


###################################################
### code chunk number 74: AItR-Forbes2000-mprofits
###################################################
rev(sort(mprofits))[1:3]


###################################################
### code chunk number 75: AItR-Forbes2000-medianNA
###################################################
median(Forbes2000$profits, na.rm = TRUE)


###################################################
### code chunk number 76: AItR-iqr
###################################################
iqr <- function(x) {
    q <- quantile(x, prob = c(0.25, 0.75), names = FALSE)
    return(diff(q))
}


###################################################
### code chunk number 77: AItR-iqr-test
###################################################
xdata <- rnorm(100)
iqr(xdata)
IQR(xdata)


###################################################
### code chunk number 78: AItR-iqr-test (eval = FALSE)
###################################################
## xdata[1] <- NA
## iqr(xdata)


###################################################
### code chunk number 79: AItR-iqr-test-results
###################################################
xdata[1] <- NA
cat(try(iqr(xdata)))


###################################################
### code chunk number 80: AItR-iqr
###################################################
iqr <- function(x, ...) {
    q <- quantile(x, prob = c(0.25, 0.75), names = FALSE, 
                  ...)
    return(diff(q))
}
iqr(xdata, na.rm = TRUE)
IQR(xdata, na.rm = TRUE)


###################################################
### code chunk number 81: AItR-Forbes2000-iqr
###################################################
iqr(Forbes2000$profits, na.rm = TRUE)


###################################################
### code chunk number 82: AItR-Forbes2000-tapply-category-iqr
###################################################
iqr_profits <- tapply(Forbes2000$profits, 
                      Forbes2000$category, iqr, na.rm = TRUE)


###################################################
### code chunk number 83: AItR-Forbes2000-variability
###################################################
levels(Forbes2000$category)[which.min(iqr_profits)]
levels(Forbes2000$category)[which.max(iqr_profits)]


###################################################
### code chunk number 84: AItR-Forbes2000-for
###################################################
bcat <- Forbes2000$category
iqr_profits2 <- numeric(nlevels(bcat))
names(iqr_profits2) <- levels(bcat)
for (cat in levels(bcat)) {
    catprofit <- subset(Forbes2000, category == cat)$profit
    this_iqr <- iqr(catprofit, na.rm = TRUE)
    iqr_profits2[levels(bcat) == cat] <- this_iqr
}


###################################################
### code chunk number 85: AItR-Forbes2000-marketvalue
###################################################
layout(matrix(1:2, nrow = 2))
hist(Forbes2000$marketvalue)
hist(log(Forbes2000$marketvalue))


###################################################
### code chunk number 86: AItR-Forbes2000-formula
###################################################
fm <- marketvalue ~ sales
class(fm)


###################################################
### code chunk number 87: AItR-Forbes2000-marketvalue-sales
###################################################
plot(log(marketvalue) ~ log(sales), data = Forbes2000, 
     pch = ".")


###################################################
### code chunk number 88: AItR-Forbes2000-marketvalue-sales-shading
###################################################
plot(log(marketvalue) ~ log(sales), data = Forbes2000, 
     col = rgb(0,0,0,0.1), pch = 16)


###################################################
### code chunk number 89: AItR-Forbes2000-country-plot
###################################################
tmp <- subset(Forbes2000, 
    country %in% c("United Kingdom", "Germany", 
                   "India", "Turkey"))
tmp$country <- tmp$country[,drop = TRUE]
plot(log(marketvalue) ~ country, data = tmp,
     ylab = "log(marketvalue)", varwidth = TRUE)


###################################################
### code chunk number 90: AItR-analysis1
###################################################
file.create("analysis.R")


###################################################
### code chunk number 91: AItR-analysis2 (eval = FALSE)
###################################################
## source("analysis.R", echo = TRUE)


###################################################
### code chunk number 92: AItR-analysis3
###################################################
file.remove("analysis.R")

Try the HSAUR2 package in your browser

Any scripts or data that you put into this service are public.

HSAUR2 documentation built on Sept. 8, 2023, 5:52 p.m.