柚子快報(bào)激活碼778899分享:R語(yǔ)言編程和操作系統(tǒng)交互
柚子快報(bào)激活碼778899分享:R語(yǔ)言編程和操作系統(tǒng)交互
文章目錄
一、重復(fù)和循環(huán)1. for循環(huán)2. while循環(huán)
二、條件分支1.if-else2.switch
三、創(chuàng)建函數(shù)1.不含參數(shù)的函數(shù)2.含參數(shù)的函數(shù)
四、和操作系統(tǒng)的交互1.計(jì)算CPU time2.歷史的存儲(chǔ)和讀取3.工作目錄4.文件處理
一、重復(fù)和循環(huán)
1. for循環(huán)
> x<-numeric(10)#占位符,否則無(wú)法找到對(duì)象x
> for(i in 1:length(x))#i表示變量,用于計(jì)數(shù);范圍是1:10
+ {
+ x[i]<-rnorm(1)
+ }
> print(x)
[1] -0.2804553 0.9634977 -0.8035086 -0.7113971 -1.0334686 0.5905210 0.9206436 0.2365685 1.1463875 0.2291404
2. while循環(huán)
> x<-numeric(10)
> i<-1
> while(i<=length(x))
+ {
+ x[i]<-rnorm(1)
+ i<-i+1
+ }
> print(x)
[1] -0.57162682 -0.01867126 1.80522912 1.03499347 0.06650873 0.87991071 1.67351117 -0.22188081 -0.45983431 -0.42795148
注:上述并不是生成10個(gè)服從標(biāo)準(zhǔn)正態(tài)分布最優(yōu)方法!
x=rnorm(10)
> print(x)
[1] 0.15814021 -0.23565245 0.40126089 -0.90398821 -0.06845508 0.77485857 0.61365385 -2.73043759 1.70709750 2.17945785
二、條件分支
1.if-else
> x<-1
> if(x>0){rnorm(1)}
[1] 1.247303
r語(yǔ)言中特殊用法:可以用ifelse(cond,stat1,stat2)替換if(cond){stat1} else{stat2}
2.switch
> x<-1
> switch(x,pi,-pi)
[1] 3.141593
> x<-2
> switch(x,pi,-pi)
[1] -3.141593
三、創(chuàng)建函數(shù)
1.不含參數(shù)的函數(shù)
> myFunction1<-function()#不含參數(shù)
+ {
+ vec <- sample(1:6, 2, replace = T)#生成一個(gè)由 1 到 6 的整數(shù)構(gòu)成的向量,并從中隨機(jī)抽取 2 個(gè)數(shù),replace = T 表示允許有放回抽樣
+ return(sum(vec))
+ }
> myFunction1()
[1] 8
2.含參數(shù)的函數(shù)
>
> myFunction2 <- function(all)#含參數(shù)all
+ {
+ vec <- sample(all, 2, replace = T)
+ return(sum(vec))
+ }
> myFunction2(1:10)
[1] 11
四、和操作系統(tǒng)的交互
1.計(jì)算CPU time
> system.time(for(i in 1:100)mad(runif(10^3)))
user system elapsed
0.006 0.000 0.008
> system.time(for(i in 1:100)mad(runif(10^5)))
user system elapsed
0.320 0.028 0.347
> system.time(for(i in 1:100)mad(runif(10^7)))
user system elapsed
31.326 1.923 33.246
User time(用戶(hù)時(shí)間):CPU 在執(zhí)行用戶(hù)代碼(包括用戶(hù)定義的函數(shù))上所花費(fèi)的時(shí)間。它是 CPU 實(shí)際執(zhí)行代碼的時(shí)間,不包括等待輸入/輸出或其他類(lèi)型的阻塞時(shí)間。用戶(hù)時(shí)間反映了程序?qū)嶋H的計(jì)算負(fù)載。System time(系統(tǒng)時(shí)間):CPU 在內(nèi)核級(jí)別執(zhí)行系統(tǒng)調(diào)用所花費(fèi)的時(shí)間。系統(tǒng)時(shí)間是 CPU 在執(zhí)行操作系統(tǒng)內(nèi)核代碼上所花費(fèi)的時(shí)間,例如執(zhí)行文件操作、內(nèi)存管理等。Elapsed time(經(jīng)過(guò)的時(shí)間):指定表達(dá)式從開(kāi)始到結(jié)束執(zhí)行所經(jīng)過(guò)的時(shí)間,包括用戶(hù)時(shí)間、系統(tǒng)時(shí)間以及可能的等待時(shí)間(例如 I/O 等待)。它反映了整個(gè)操作的實(shí)際持續(xù)時(shí)間。
2.歷史的存儲(chǔ)和讀取
savehistory(file = ".Rhistory")
loadhistory(file = ".Rhistory")
history(max.show = 25,reverse = FALSE,pattern)
savehistory(file = “.Rhistory”):將當(dāng)前 R 會(huì)話的命令歷史記錄保存到名為 .Rhistory 的文本文件中。如果您在 R 會(huì)話期間執(zhí)行了許多命令,并希望在以后的會(huì)話中重新加載這些命令歷史記錄,則可以使用此函數(shù)來(lái)保存命令歷史記錄。loadhistory(file = “.Rhistory”):從名為 .Rhistory 的文本文件中重新加載命令歷史記錄到當(dāng)前 R 會(huì)話中。如果您已經(jīng)保存了命令歷史記錄,并希望在當(dāng)前會(huì)話中重新加載它們,則可以使用此函數(shù)。關(guān)于 history(max.show = 25, reverse = FALSE, pattern) 函數(shù): history() 函數(shù)用于顯示當(dāng)前 R 會(huì)話中的命令歷史記錄。 max.show 參數(shù)指定要顯示的最大命令數(shù)量,默認(rèn)為 25。 reverse 參數(shù)用于控制命令歷史記錄的顯示順序。如果設(shè)置為 TRUE,則按照最新的命令顯示在最前面;如果設(shè)置為 FALSE,則按照最舊的命令顯示在最前面。 pattern 參數(shù)用于指定要顯示的命令的模式。只有與指定模式匹配的命令才會(huì)被顯示。
3.工作目錄
#展示當(dāng)前目錄
getwd()
#設(shè)置工作目錄
setwd("dir-location")
4.文件處理
list.files()#顯示當(dāng)前工作目錄下所有的文件名稱(chēng)
file.choose()#彈出窗口可以選擇文件
read.csv(file.choose())#彈出窗口選擇要讀區(qū)的csv文件
柚子快報(bào)激活碼778899分享:R語(yǔ)言編程和操作系統(tǒng)交互
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。