所以我創建了一個環境(我試圖用它作爲散列表)。R向量化環境訪問
爲了澄清我訪問存儲在環境與此值:
hash[["uniqueIDString"]] ## hash takes a uniqueID and returns a
## dataframe subset that is precomputed
我也有一個函數調用FUNC返回由哈希返回的行的某個子集。它對單個調用很好,但它不是矢量化的,所以我不能在一個非常重要的轉換中使用它。
下不起作用:
df <- transform(df,FOO = func(hash[[ID]])$FOO)
它給了我一個錯誤關於具有錯誤的參數數目爲亂碼,我推測是因爲它傳遞ID的載體,我的環境和環境不知道該怎麼做。
編輯:確切的錯誤是:
Error in hash[[ID]] :
wrong arguments for subsetting an environment
編輯:隨着Rob的建議,我收到以下錯誤:
Error in hash[ID] :
object of type 'environment' is not subsettable
編輯:爲了澄清我試圖在轉換的上下文中使用哈希查找,其中ID列中的值在哈希表中查找並傳遞給func o輸出可以成爲新的列。
您使用的是單指數'[ ['運算符在非長度爲1的矢量'df $ ID'上。 –
@RobertKrzyzanowski做出改變,現在錯誤指出'environment'類型的對象不是子集。想法? –
我認爲更一般,仍然怪異的行爲是:「f = function(x){hash [[x]]}; apply(vector,2,f)」產生「散列錯誤[[x]]:子集化環境的錯誤參數「,即使hash [[x]]在不在apply中時返回你想要的內容。 –