##分支結構的流程控制:if/if_else/switch
#if結構
price <- scan()
if (price < 200) print("no discount!")
if (price >= 200 & price < 500) print("off 3%")
if (price >= 500 & price < 1000) print("off 5%")
if (price >= 1000 & price < 2500) print("off 8%")
if (price >= 2500 & price < 5000) print("off 10%")
if (price >= 5000) print("off 15%")
#if_else結構
price <- scan()
if (price < 200) print("no discount!") else}}}
#switch結構:適合條件分支較多的情況 switch(r物件,值列表)
price <- scan()
if (price < 200) f <- 1 else}}}
print(switch(f,"no discount!","off 3%","off 5%","off 8%","off 10%","off 15%"))
#編寫乙個計算描述統計量的通用函式:
x <- c(1,2,3,4,5)
type <- "mean"
switch(type,center= ,mean=mean(x),sd=sd(x)) #執行mean(x)
type <- "center"
switch(type,center= ,mean=mean(x),sd=sd(x)) #center也執行mean(x)
type <- "sd"
switch(type,center= ,mean=mean(x),sd=sd(x)) #執行sd(x)
##迴圈結構的流程控制:for/while/repeat
#for結構:適用於迴圈次數固定的迴圈
s = 0
for(i in 1:100)
print(s)
#while迴圈:不僅適用於迴圈次數固定的迴圈,同樣適用於迴圈次數無法固定的迴圈
s <- 0
i <- 1
while(i <= 100)
print(s)
#repeat語句:無條件進入迴圈體並反覆執行迴圈體,通過break語句強行跳出迴圈,避免出現「死迴圈」現象
s <- 0
i <- 1
repeat
else break
}print(s)
#利用控制流程還原彙總資料
#先定義函式mytable
mytable <- function(mytable)
} row.names(datatable) <- c(1:dim(datatable)[1])
return(datatable)
}grade <- rep(c("b","c","d","e"),times = 2)
*** <- rep(c("m","f"),each = 4)
freq <- c(2,11,12,5,2,13,10,3)
table <- data.frame(***=***,grade=grade,freq=freq) #彙總資料
mydata <- mytable(table) #使用函式mytable把彙總資料轉換為原始資料表
R 基本資料管理
manager c 1,2,3,4,5 date c 10 24 08 10 28 08 10 1 08 10 12 08 5 1 09 country c us us uk uk uk gender c m f f m f age c 32,45,25,39,99 q1 c 5,3,3,3,2 q...
R語言實戰之高階資料管理
數學函式 data read.csv sample.csv high data high c 1 20 abs high sqrt high 不小於high的最小整數 ceiling high 不大於high 的最小整數 floor high 向0方向擷取的high整數部分 trunc high 將...
利用R語言進行基本資料管理
建立leadership資料框 manager c 1,2,3,4,5 date c 10 24 08 10 28 08 10 1 08 10 12 08 5 1 09 country c us us uk uk uk gender c m f f m f age c 32,45,25,39,99 ...