2016-08-15 58 views
-1
age <- seq(10, 100, 10) 
df <- data.frame(age) 
df 

這並不工作R代碼裏面的連接()/分離()無法正常工作

df$agegroup <- vector(mode = "character", length = nrow(df)) 
attach(df) 
agegroup[age >= 10 & age < 20] <- "10To20" 
detach(df) 
df$agegroup 

這工作得很好

df$agegroup <- vector(mode = "character", length = nrow(df)) 
df$agegroup[df$age >=10 & df$age < 20] <- "10To20" 
df$agegroup 

有人可以解釋這是爲什麼?謝謝!的attach的文檔中提到的

+1

專業提示:避免'attach()'和'detach()'。對於沒有'data ='參數的函數,使用'with()'和'within()'。 – MrFlick

回答

4

如:

數據庫實際上不附接。而是在搜索路徑上創建新環境,並將保存文件或環境中的列表元素(包括數據框的列)或對象複製到新環境中。如果使用<<-assign分配給附加的數據庫,則只能更改附加的副本,而不是原始對象。 (正常分配將在用戶的工作區中放置修改後的版本:請參閱示例。)由於這個原因,attach可能會導致混淆。