week3note函数
生活随笔
收集整理的這篇文章主要介紹了
week3note函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 基本函數(shù)
用ls()函數(shù)可以查看當(dāng)前工作空間保存的變量和函數(shù),用rm()函數(shù)可以剔除不想要的對象.
ls()可以指定一個pattern參數(shù),此參數(shù)定義一個匹配模式,只返回符合模式的對象名.模式格式是UNIX中g(shù)rep的格式.比如,
ls(pattern="tmp[.]")可以返回所有以“tmp.”開頭的對象名.
rm()可以指定一個名為list的參數(shù)給出要刪除的對象名,所以
rm(list=ls(pattern=“tmp[.]”))`可以刪除所有以“tmp.”開頭的對象名.
fix將打開一個編輯窗口顯示函數(shù)的定義,修改后關(guān)閉窗口函數(shù)就被修改了.fix()調(diào)用的編輯程序缺省為記事本,可以用“options(editor="編輯程序名")”來指定自己喜歡的編輯程序.
2. 作用域
與c語言類似,全局變量與局部變量的關(guān)系
x = list(1, "abc") x f =function(x) {x[[2]] <- "!!" ;x} f(x) x x = 2 f = function() {print(x) ; x= 20; print(x) } f() [1] 2 20 x [1] 2這個例子中原來有一個變量x值為2,函數(shù)中為變量x賦值20,但函數(shù)運行完后原來的x值并未變化.但是也要注意,函數(shù)中的顯示函數(shù)調(diào)用時局部變量x還沒有賦值,顯示的是全局變量x 的值.這是R編程比較容易出問題的地方:你用到了一個局部變量的值,你沒有意識到這個局部變量還沒有賦值,而程序卻沒有出錯,因為這個變量已有全局定義.
3. 例子
3.1 中位數(shù)和均值的比值函數(shù)
median.mean.ratio <- function(x){return(median(x)/mean(x)) }3.2 設(shè)銀行年利率為2.52%。將10000元錢存入銀行,問至少多長時間會連本帶利翻一番?4.14 呢?
count <- function(money, i){year <- 1money0 <- money while(money<=2*money0){money <- money * (1 + i)^yearyear <- year + 1}year }3.3 考慮一個簡單的銀行存取款系統(tǒng)
#有錯誤,全局變量。 open.account=function(total){total <- 0list(deposit=function(amount) {if (amount<=0)stop("Deposits must be positive!\n")total <<-total+amountcat(amount,"deposited. Your balance is", total,"\n\n")}, withdraw=function(amount) {if(amount > total)stop ("Sorry, you don't have that much money!\n")total<<- total-amountcat(amount, "withdrawn. Your balance is",total,"\n\n")},balance=function(){total<<-total;cat("Your balance is", total,'\n\n') }) }total <- 100; client <- open.account(total); client $ deposit (20); client $ withdraw (200); client $ withdraw (40); client $ balance ( );3.4 : score.txt(tab分隔的文本文檔)文檔存放了某次選秀節(jié)目10位選手的姓名和6個評委的打分記錄,根據(jù)比賽規(guī)則,對每位選手的最終成績計算方法為:去掉一個最高分,去掉一個最低分,然后剩下的求平均。請編寫一個程序,將每位選手的最終成績存放在final.score中,要求final.score的結(jié)果里面的第一列是選手的姓名,第二列是他的最終成績,第三列是名次。
setwd('E:\\github\\Rlearning-Xie') score <- read.table("score.txt",header=T,sep='\t') head(score)countscore <- function(df){final.score <- (sum(df)-max(df)-min(df))/4 }finalscore <- apply(as.data.frame(score)[,-1],1,countscore) finalscore<- rbind(as.character(as.data.frame(score)[,1]),finalscore ,order(finalscore)) names(finalscore) <- c("names","score","order") t(finalscore) [1,] "李芳芳" "9.65" "6" [2,] "秦婭蘭" "9.575" "8" [3,] "朱萱" "9.775" "10"[4,] "趙婷婷" "9.475" "4" [5,] "莊麗" "9.55" "5" [6,] "陳飛霞" "9.225" "2" [7,] "諸葛琳" "9.6" "7" [8,] "曲菁" "9.25" "9" [9,] "張惠" "9.625" "1" [10,] "劉潔瑜" "9.4" "3"總結(jié)
以上是生活随笔為你收集整理的week3note函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫——爬取IEEE论文
- 下一篇: java开发面试自我介绍模板_java求