1.某動物園,觀察30天有關老虎、獅子和豹的出現次數,列出三種動物30天內出現次數之最大值、最小值及平均值
ch13_1 <- function()
{
an_info <-
matrix(round(rnorm(90,10,3)), ncol = 3)
colnames(an_info) <-
c("Tiger", "Lion", "Leopard")
rownames(an_info) <-
c(paste(rep("Day", times = 30), 1:30))
print(an_info)
apply(an_info, 2, function(x)
c(max(x), min(x), round(mean(x))))
}
2.承上題,請設計含有NA之數據,再次計算最大、最小及平均值
ch13_2 <- function()
{
an_info <-
matrix(c(round(rnorm(87,10,3)),NA,NA,NA), ncol = 3, byrow = TRUE)
colnames(an_info) <-
c("Tiger", "Lion", "Leopard")
rownames(an_info) <-
c(paste(rep("Day", times = 30), 1:30))
print(an_info)
apply(an_info, 2, function(x)
c(max(x,na.rm = TRUE), min(x,na.rm = TRUE),
round(mean(x,na.rm
= TRUE))))
}
3.請使用tapply函數,執行計算美國四大區之人口、面積及收入平均
ch13_3 <- function()
{
sstr <-
as.character(state.region)
vec.pop <- state.x77[,1]
vec.area <- state.x77[,8]
vec.income <-
state.x77[,2]
x <- c(vec.area, vec.pop,
vec.income)
names(x) <- NULL
Info <- matrix(c(vec.pop,
vec.area, vec.income), ncol = 3)
a.answer <-
matrix(c(tapply(vec.pop, factor(sstr, levels = c("Northeast",
"South",
"North
Central", "West")), sum),
tapply(vec.area,
factor(sstr, levels = c("Northeast", "South",
"North
Central", "West")), sum),
tapply(vec.income,
factor(sstr, levels = c("Northeast", "South",
"North
Central", "West")), mean)),
nrow
= 3, byrow = TRUE)
colnames(a.answer) <-
c("Northeast", "South", "North Central",
"West")
rownames(a.answer) <-
c("pop", "area", "meanIncome")
print(a.answer)
}