這裏是R新手的位,所以它可能是一個非常簡單的問題。t-test在函數中不起作用 - 變量長度不同
我有一個GENDER(是一個二進制變量)和一大堆數值變量的數據集。我想寫一個簡單的函數來檢查方差是否相等,然後執行適當的t檢驗。
所以我的第一次嘗試是這樣的:
genderttest<-function(x){ # x = outcome variable
attach(Dataset)
on.exit(detach(Dataset))
VARIANCE<-var.test(Dataset[GENDER=="Male",x], Dataset[GENDER=="Female",x])
if(VARIANCE$p.value<0.05){
t.test(x~GENDER)
}else{
t.test(x~GENDER, var.equal=TRUE)
}
}
這行之有效的函數(更換X,當然)以外,但這裏給了我一個錯誤,因爲可變長度不同。
所以我想它可能會奇怪處理NA的情況下,我應該先清理數據集,然後進行測試:
genderttest<-function(x){ # x = outcome variable
Dataset2v<-subset(Dataset,select=c("GENDER",x))
Dataset_complete<-na.omit(Dataset2v)
attach(Dataset_complete)
on.exit(detach(Dataset_complete))
VARIANCE<-var.test(Dataset_complete[GENDER=="Male",x], Dataset_complete[GENDER=="Female",x])
if(VARIANCE$p.value<0.05){
t.test(x~GENDER)
}else{
t.test(x~GENDER, var.equal=TRUE)
}
}
但是這給了我同樣的錯誤。
如果有人能指出我的(可能是愚蠢的)錯誤,我將不勝感激。
能否請您提供一個可重複的例子,所以我們可以搜索的錯誤? – Vincent
通過重現性,您的意思是在開始時創建有問題的數據集的示例? – Timguin
無論是那個數據集或另一個更簡單但相似,我們可以用 – Vincent