R語言的基礎語法及常用命令
阿新 • • 發佈:2018-12-19
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