R的資料管理 控制流程

2021-09-26 11:00:46 字數 1787 閱讀 8431

##分支結構的流程控制: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 ...