分類: R

R 變數與資料的管理

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,並且小心運用 attachdetach,它會是一個很方便的功能,不過只限於研究與測試的情況,若要撰寫指令稿、發展正式的程式專案時,建議還是盡量避免這樣使用,以免未來城市結構變複雜時,發生變數名稱衝突的問題。

以下是 attach 使用上需要注意的重點整理:

  1. 不要重複執行 attach(Squid),以免變數名稱重複。
  2. 確保變數名稱都有一定的獨特性,盡量避免太過於一般性的名稱,例如 MonthLocation
  3. 如果需要 attach 多個 data frame,但是一次只使用到一個 data frame,那麼建議將沒有用到的 data frame 先行 detach

Exercise 1
BirdFlu.xls 這個檔案中記錄了數個國家 H5N1 禽流感的年度確診病例,這些資料是由各個國家回報給世界衛生組織(WHO)後所統計出來的,請依下列步驟分析這些資料:

  1. 將這些資料以 read.table 讀進 R 中。
  2. 使用 namesstr 檢查資料。
  3. 列出 2003 年各國的確診病例數目。
  4. 計算 2003 年與 2005 年確診病例總數。
  5. 計算 China 與 Turkey 的確診病例總數。

Page: 1 2 3 4 5 6 7 8 9

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

[開箱] Marttiini MFT G10 芬蘭北歐直刀

本篇是 Marttiini M...

2 年 ago

[開箱] 一般打火棒、鎂塊打火棒

本篇是鎂塊打火棒與一般普通打火...

2 年 ago

[開箱] 瑞典 BAHCO 396-Lap 魚牌軍規摺疊鋸

本篇為瑞典 BAHCO 396...

2 年 ago

[DIY] 野炊水煮蛋、紅豆湯記錄

本篇記錄今年過年期間帶阿玄在家...

2 年 ago

[竹北素食] 善菓堂 SHAN GUO TANG

本篇是我最近去竹北善菓堂用餐時...

2 年 ago

Linux 複製檔案 cp 指令用法教學與範例

本篇介紹如何在 Linux 系...

2 年 ago