本篇文章說明使用R時, 會有不同特殊運算子需求, 以下說明使用方式.
?問號
?符號功能是查詢線上說明, 例: ?plot, 其功能與 help(plot) 相同, 當然使用 ?'plot' 或 ?"plot"結果皆相同. 例: ?'+' 可查詢算數運算功能.
> lotto <- sample(49,6)
> lotto
[1] 16 1 49 46 43 7
# 取出iris資料集的Species欄位資料, 其結果為向量
iris$Species
<-運算子
<-為指派運算子, 將右邊的運算結果指派至左邊物件, 強烈建議指派運算子不要使用等號(=), 以免與函數中的參數相混淆.> lotto <- sample(49,6)
> lotto
[1] 16 1 49 46 43 7
$符號
$符號用於取出物件內容,亦可用於串列資料的讀取.# 取出iris資料集的Species欄位資料, 其結果為向量
iris$Species
()小括號
()符號大概是接觸R最常使用符號, 其使用時機為函數名稱
readLines(system.file("DESCRIPTION")) , summary(iris), plot(iris), 如果在小括號前加上資料物件名稱, 此時會有錯誤產生.
readLines(system.file("DESCRIPTION")) , summary(iris), plot(iris), 如果在小括號前加上資料物件名稱, 此時會有錯誤產生.
[]中括號
[]中括號用於將資料進行條件篩選的指標(indexing), 例: 一維或二維資料物件取出部份符合條件資料.
# Species為setosa的Sepal.Length資料
iris$Sepal.Length[iris$Species == "setosa"]
# 符合Sepal.Length大於5且Sepal.Width大於4的所有資料
iris[iris$Sepal.Length >5 & iris$Sepal.Width > 4,]
二維資料如matrix, data.frame 使用[列, 行] 方式取出資料或是取出直行欄位資料.
# 讀取iris第1至4欄資料
iris[1:4]
?plot 會顯示 plot {graphics}表示 plot 函數隸屬於graphics套件.
# 程式區塊
> for (i in 1:10) {
+ if (i %% 2 == 0) {
+ print(paste0(i, "是偶數"))
+ } else {
+ print(paste0(i, "是奇數"))
+ }
+ }
[1] "1是奇數"
[1] "2是偶數"
[1] "3是奇數"
[1] "4是偶數"
[1] "5是奇數"
[1] "6是偶數"
[1] "7是奇數"
[1] "8是偶數"
[1] "9是奇數"
[1] "10是偶數"
> list("RWEPA", c("R", "Python", "Julia"))
[[1]]
[1] "RWEPA"
[[2]]
[1] "R" "Python" "Julia"
> mylist <- list(web="RWEPA", programming=c("R", "Python", "Julia"))
> mylist$programming
[1] "R" "Python" "Julia"
> mylist[[2]]
[1] "R" "Python" "Julia"
參考: ?'@' 線上說明
參考: http://adv-r.had.co.nz/S4.html
# Species為setosa的Sepal.Length資料
iris$Sepal.Length[iris$Species == "setosa"]
# 符合Sepal.Length大於5且Sepal.Width大於4的所有資料
iris[iris$Sepal.Length >5 & iris$Sepal.Width > 4,]
二維資料如matrix, data.frame 使用[列, 行] 方式取出資料或是取出直行欄位資料.
# 讀取iris第1至4欄資料
iris[1:4]
{}大括號
{}大括號用於標註套件名稱或程式區塊.?plot 會顯示 plot {graphics}表示 plot 函數隸屬於graphics套件.
# 程式區塊
> for (i in 1:10) {
+ if (i %% 2 == 0) {
+ print(paste0(i, "是偶數"))
+ } else {
+ print(paste0(i, "是奇數"))
+ }
+ }
[1] "1是奇數"
[1] "2是偶數"
[1] "3是奇數"
[1] "4是偶數"
[1] "5是奇數"
[1] "6是偶數"
[1] "7是奇數"
[1] "8是偶數"
[1] "9是奇數"
[1] "10是偶數"
[[ 二個左中括號
如果資料物件有顯示此符號, 一般為串列(list).> list("RWEPA", c("R", "Python", "Julia"))
[[1]]
[1] "RWEPA"
[[2]]
[1] "R" "Python" "Julia"
> mylist <- list(web="RWEPA", programming=c("R", "Python", "Julia"))
> mylist$programming
[1] "R" "Python" "Julia"
> mylist[[2]]
[1] "R" "Python" "Julia"
@運算子
@符號用於取出S4物件內容(Slot). 目前已套件支援S4物件型態, 例: kernlab 套件. S4資料物件存取須使用@運算子.參考: ?'@' 線上說明
參考: http://adv-r.had.co.nz/S4.html
::運算子 (Double Colon)
::運算子一般用於指定套件的函數, 如果不同套件,確有相同函數名稱,此時使用
套件名稱::函數名稱
# 本例僅作為::的說明使用, 不加上::運算子亦可執行
程式碼
# ?問號
?plot
help(plot)
?'plot'
?"plot"
?'+'
# <-運算子
# 隨機選取1~49的6個數值
lotto <- sample(49,6)
lotto
# $符號
# 取出iris資料集的Species欄位資料, 其結果為向量
iris$Species
# () 小括號
readLines(system.file("DESCRIPTION"))
summary(iris)
plot(faithful)
# []中括號
# Species為setosa的Sepal.Length資料
iris$Sepal.Length[iris$Species == "setosa"]
# 符合Sepal.Length大於5且Sepal.Width大於4的所有資料
iris[iris$Sepal.Length >5 & iris$Sepal.Width > 4,]
# 讀取iris第1至4欄資料
iris[1:4]
# {}大括號
# 套件名稱
# plot {graphics}
# 程式區塊
for (i in 1:10) {
if (i %% 2 == 0) {
print(paste0(i, "是偶數"))
} else {
print(paste0(i, "是奇數"))
}
}
# [[ 串列
list("RWEPA", c("R", "Python", "Julia"))
mylist <- list(web="RWEPA", programming=c("R", "Python", "Julia"))
mylist$programming
mylist[[2]]