R 的 attach
函數
如果您不想要在每次使用變數時,都輸入 Squid$GSI
這樣累贅的名稱,我們可以使用 attach
函數將 Squid
納入 R 的搜尋路徑,這樣我們就可以直接使用 Squid
裡面的所有變數:
attach(Squid) GSI
這時候任何函數也都可以直接取用這些變數:
boxplot(GSI) mean(GSI)
雖然 attach
看起來很方便,但是如果要 attach
的變數名稱已經事先存在於全域變數中的話,就會產生問題,或是同時 attach
兩個有同樣變數名稱的 data frame 的話也會出問題,另外 attach
的變數名稱亦不可以跟既有的 R 關鍵字或是函數名稱相同(例如變數名稱如果取為 time
,就會與 time
函數衝突),如果發生名稱衝突的問題時,您會發現 R 可能不會如您預期的那樣存取指定的變數資料。
如果要將特定的 data frame 從搜尋路徑中移除,可以使用 detach
:
detach(Squid)
如果您一次只需要使用一個 data frame,並且小心運用 attach
與 detach
,它會是一個很方便的功能,不過只限於研究與測試的情況,若要撰寫指令稿、發展正式的程式專案時,建議還是盡量避免這樣使用,以免未來城市結構變複雜時,發生變數名稱衝突的問題。
以下是 attach
使用上需要注意的重點整理:
- 不要重複執行
attach(Squid)
,以免變數名稱重複。 - 確保變數名稱都有一定的獨特性,盡量避免太過於一般性的名稱,例如
Month
或Location
。 - 如果需要
attach
多個 data frame,但是一次只使用到一個 data frame,那麼建議將沒有用到的 data frame 先行detach
。
Exercise 1
BirdFlu.xls
這個檔案中記錄了數個國家 H5N1 禽流感的年度確診病例,這些資料是由各個國家回報給世界衛生組織(WHO)後所統計出來的,請依下列步驟分析這些資料:
- 將這些資料以
read.table
讀進 R 中。 - 使用
names
與str
檢查資料。 - 列出 2003 年各國的確診病例數目。
- 計算 2003 年與 2005 年確診病例總數。
- 計算 China 與 Turkey 的確診病例總數。
山崎退
新手發問~~小弟沒有資訊背景,剛接觸R不久
請問文章開頭的資料檔squid.txt是需自行建立嗎?
或者是有載點可下載
蠻希望跟著板主的文章來練習
若有不妥還請包涵~~感謝!
G. T. Wang
是我忘記放下載連結,真是抱歉!
我已經將下載連結放在文章中了,如果還有其他問題請再跟我說,謝謝您。