1. 程式人生 > >R語言的基礎語法及常用命令

R語言的基礎語法及常用命令

R其實對於資料分析來說只是工具而已,所以剛開始不需要學習多麼深多麼細,只需要能夠滿足當前需求就行,之後的在實踐中慢慢學習。
畢竟想要把R學精並不是容易的事情。正確的做法就是邊做邊學,不會就google翻文件。
本片主要是R的基礎語法及常用的命令操作

賦值

R賦值採用<-或者->或者=,建議採用標準的第一個。
由於R中內建了同名函式c(),最好不要在編碼時使用c作為物件名,否則可能產生一些不易察覺的問題

a <- 133
"hello" -> b  # 注意無論哪種寫法,大於或小於號都是指向變數名
d = 'This'  # 不建議這麼用,有可能會造成問題

a
b
d
133

'hello'

'This'

檢視幫助

help(mean)
# 或者
?mean

包的安裝和載入

# 獲取包含R包的庫位置
.libPaths()

# 檢視已經安裝的包
library()

# 安裝包
install.packages("packagename")

# 載入包
library(packagesname)

# 檢視已經載入的包
(.packages())

# 解除安裝載入的包(注意不是刪除包)
detach("package:packagename")

# 刪除包
remove.packages("packagename")

資料的讀取與儲存

讀取

# 讀取csv
data <- read.csv('.\\統計學\\example\\ch1\\table1_1.csv') 
head(data,6)    # 讀取前 6行的資料

# 讀取 Excel資料
library(xlsx)    #需要安裝 xlsx 包
data <- read.xlsx("file",n)    # n 為要匯入工作表的序號

# 讀取 spss資料
library(foregin) # 已經預設安裝
data <- read.spss("file",use.value.labels=TRUE,as.data.frame=TRUE)

# 讀取 R格式資料
data <- load('.\\統計學\\example\\ch1\\example1_1.RData')
學生姓名 統計學 數學 營銷學 管理學 會計學
張青松 68 85 84 89 86
王宇翔 85 91 63 76 66
田思雨 74 74 61 80 69
徐麗娜 88 100 49 71 66
張志傑 63 82 89 78 80
趙穎穎 78 84 51 60 60

儲存

# 儲存 R格式資料
save(data,file = '.\\...\\name.Rdata')

# 儲存 csv格式資料
write.csv(data,file = '.\\...\\name.csv')

# 儲存 xlsx格式
library(xlsx)
write.xlsx(data, "data.xlsx",sheet.name="sheet1")

if條件語句

if語句

x <- 30L  # R語言中,在正整數後加 L來表示整型資料(正整數)
if(is.integer(x)) {
   print("X is an Integer")
}
[1] "X is an Integer"

if…else語句

y <- list('a', 'v', 'd')
if('a' %in% y){    # %in% 運算子 檢查元素是否在向量中
    print('a is in list')
}else{      # 注意這裡的 else語句並不在if的花括號當中
    print('a is not in list')

}
[1] "a is in list"
x <- c("what","is","truth")

if("Truth" %in% x) {
   print("Truth is found the first time")
} else if ("truth" %in% x) {
   print("truth is found the second time")
} else {
   print("No truth found")
}
[1] "truth is found the second time"

switch語句

# 建立一個函式,輸入的值和選擇的函式型別來輸出結果。
centre <- function(x, type) {

switch(type,

       mean = mean(x),

       median = median(x),

       trimmed = mean(x, trim = .1))

 }
centre(c(1,2,4,5),'mean')
3

迴圈語句

while迴圈

ant <- 2
while(ant<5){
    print('hello')
    ant = ant + 1
}
[1] "hello"
[1] "hello"
[1] "hello"

for迴圈

v <- LETTERS[1:4]  # LETTERS為26個大寫字母向量。

for(i in v){
    print(i)
}
[1] "A"
[1] "B"
[1] "C"
[1] "D"

repeat迴圈

i <- 1
sum <- 0
repeat
{
   sum = sum + i
   if( i >= 100)   #如果已迴圈加到了100,則使用break跳出repeat迴圈
       break
   i <- i + 1
}
print(sum)
[1] 5050

next語句

R語言存在next語句,當我們想跳過迴圈的當前迭代而不終止它時便可使用next。 遇到next時,R解析器跳過本次迭代,並開始迴圈的下一次迭代。

k <- LETTERS[1:6]
for ( i in k) {
   if (i == "D") {
      next
   }
   print(i)
}
[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"

R常用的常量

# 26個大寫字母
LETTERS

# 26個小寫字母
letters

# 月份簡寫
month.abb

# 月份名稱
month.name

# π 值
pi
'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'
'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
'Jan' 'Feb' 'Mar' 'Apr' 'May' 'Jun' 'Jul' 'Aug' 'Sep' 'Oct' 'Nov' 'Dec'
'January' 'February' 'March' 'April' 'May' 'June' 'July' 'August' 'September' 'October' 'November' 'December'
3.14159265358979