1
dat = data.frame(height = c(20, 20, 40, 50, 60, 10), weight = c(100, 200, 300, 200, 140, 240),
age = c(19, 20, 20, 19, 10, 11))
f = function(x){
subset.19 = dat$x[dat$age == 20]
subset.20 = dat$x[dat$age == 19]
t.test(subset.19, subset.20)
}
f("weight")
我得到一個錯誤:R:如何將一個變量傳遞到一個函數到子集data.frame
錯誤VAR(X): 'x' 爲NULL 此外:警告信息: 1:在is.na(x)中:is.na()應用於類型爲'NULL'的非(列表或向量) 2:在mean.default(x)中:參數不是數字或邏輯:返回NA
我認爲這是因爲dat$x
始終爲NULL,因爲data.frame中沒有名爲x
的列。我想我不會將變量名稱傳遞給函數。 dat$x
始終是dat
中名爲x
的列的子集,而不是傳入的列名稱(即重量)。所以我的問題是如何傳遞列名稱,我想這樣的功能運行?
重點是當在變量中傳遞列名時,必須使用''而不是''''。你可以通過輸入'help(「[」)'來閱讀。 –