2016-11-27 88 views
-1

eval(expr,envir,enclos)中的錯誤:找不到對象zygpar。eval(expr,envir,enclos)中的錯誤:未找到對象'zygpar'

nl <- read.table ("hybrid2.csv", header=T, na=".") 
    describe(nl, skew=F) 

    # Recode Data for Analysis - Rescale variables to have variances  around 1.0 
nl$orf1 <- nl$orfsummer0ppvt00 
nl$orf2 <- nl$orfsummer1ppvt11 
nl$nwf1 <- nl$nwfsummer1ppvt11 
nl$nwf2 <- nl$nwfsummer1ppvt11 
nl$fcat1 <- nl$fcat0ppvt00 
nl$fcat2 <- nl$fcat0ppvt00 
nl$rti1 <- nl$rtisum10 
nl$rti2 <- nl$rtisum11 
nl$zygpar <- nl$zyg_par 


# Select Variables for Analysis 
vars  <- c('orf','nwf','fcat','rti') 
nv  <- 4  # number of variables 
ntv  <- nv*2 # number of total variables 
selVars <- paste(vars,c(rep(1,nv),rep(2,nv)),sep="") 

# Select Random Subset to reduce time to Fit Examples 
testData <- head(nl,n=500) 

# Select Data for Analysis 
mzData <- subset(testData, zygpar==1, selVars) 
dzData <- subset(testData, zygpar==2, selVars) 

我在這裏做錯了什麼? 我得到的錯誤是在EVAL 錯誤(表達式,ENVIR,enclos):「zygpar」未找到對象

回答

1

所以我已經得到了逐步的問題,沮喪,a)除將合理地提供是否存在信息少你向主管提出這個問題,並且b)不建議R語言的基礎知識(或者知識)。所以我最初發布並刪除了一條說:Have you even looked at str(testData)?????

知道你正在使用什麼類型的「對象」是R編程(以及事實上可能是每種編程語言)的基礎。 (所以我認爲:)子集函數無法找到名爲zygpar的testData中的列。那是爲什麼?我無法知道......因爲我不在你的胳膊下,不能要求你立即鍵入names(nl),這會告訴我nl -object中的有效名稱。但由於您從nl製作了testData,因此我們預計testData的名稱與nl的名稱相同。所以namesstr會告訴你要麼列表元素名稱或data.frame列名(因爲data.frames僅僅是列表的一種特殊形式。

所以,什麼你「做錯了」一個級別(SO水平)沒有提供足夠的信息在個人層面上,你個人「做錯了什麼」是潛入計算機語言,而不研究計算機語言的邏輯和語義基礎,並學習可以讓你檢查你正在操作的對象的函數和方法。

所以這可以說是隻是一個「SO評論」,但我確實相信,如果您只提供names(testData)或的結果,對於有經驗的R程序員來說,答案將是顯而易見的。

相關問題