2016-09-21 49 views
0

因此,我使用內置到R中的數據集,稱爲「mtcars」。我正在嘗試在變量「MPG」和「HP」之間進行關聯測試。這是到目前爲止我的代碼...將變量從數據集設置到全局環境中,以便變量可以自由使用

data(mtcars,package = "datasets",envir = .GlobalEnv) 
new_hp = log10(hp) 
new_mpg = log10(mpg) 
plot(new_hp,new_mpg,xlab = "Log10(Horsepower)",ylab = "Log10(MPG)") 
abline(lm(new_mpg~new_hp)) 
cor.test(new_hp,new_mpg) 

當我這樣做,控制檯告訴我,變量惠普和MPG都沒有發現(對象「VARIABLENAME」未找到)。因此,由於沒有定義的對象進行操作,所有後續代碼都會失敗。我是否需要將mtcars數據集中的變量HP和MPG置於全局環境中?如果是這樣,我該怎麼做?

回答

1

對於內置樣mtcars數據,一般無需顯式調用data()。如果你開始一個新的R會話,只需在控制檯輸入mtcars,你將看到數據。這是由於數據的(不是那麼新的)延遲加載功能。

如果您在控制檯交互式工作並厭倦了反覆輸入mtcars$來指代特定列,那麼一個好工具是with

例如,你可以這樣做:

with(mtcars,plot(log10(hp),log10(mpg),xlab = "Log10(Horsepower)",ylab = "Log10(MPG)")) 

或者,你可以簡單地先添加的轉換版本,然後直接引用它們:

mtcars <- transform(mtcars,log_hp = log10(hp),log_mpg = log10(mpg)) 
with(mtcars,plot(log_hp,log_mpg,xlab = "Log10(Horsepower)",ylab = "Log10(MPG)")) 
+0

,當然情節和其他一些功能得到了一個方便的數據參數。 – Roland

1

你是不是引用的數據集,當你定義new_hp和new_mpg

這將工作:

new_hp = log10(mtcars$hp) 
new_mpg = log10(mtcars$mpg) 
相關問題