s4

    1熱度

    2回答

    我使用S4 oop在R中運行土壤水分平衡模型,並創建了類water的平衡量我無法更新方法內的槽。這裏有一些簡單的東西,我沒有看到。我的更新代碼是: setGeneric(name="updateASW",def=function(object,...){standardGeneric("updateASW")}) setMethod(f = "updateASW", signature(ob

    0熱度

    1回答

    我最近試圖將所有函數組織到包中,以避免在每個腳本的頂部有數百行代碼。我編寫了一系列運行LME4多級模型後使用的函數。這些函數被設計用來生成漂亮的輸出表(我知道有些可用的包可以做到這一點,但它們通常不夠靈活,無法根據我的需要自定義表)。下面是一個函數的例子,它採用lmer模型的列表(例如,fm0,fm1,fm2),並將固定效果參數和它們各自的標準錯誤組合到一個輸出表格中(稍後我將其與其他模型統計信息

    2熱度

    1回答

    我收到消息 錯誤parent.frame():節點堆棧溢出 錯誤綜合報導期間:節點堆棧溢出 當我嘗試構建使用S4命令「作爲」的對象,但只有當超宣佈「虛擬」。 類層次結構如下所示: PivotBasic包含樞軸包含型號 爲樞紐和樞紐基本的setClass命令和PivotBasic構造如下。類Pivot沒有構造函數。 Model構造函數太大而無法插入。 這實在不是什麼大不了的(我認爲),因爲如果「虛擬

    10熱度

    2回答

    我的S4類有一個多次調用的方法。我注意到執行時間比單獨調用類似函數時慢得多。所以我在類中添加了一個類型爲「function」的插槽,並使用該函數代替方法。下面的例子顯示了這樣做的兩種方式,並且它們都比對應的方法運行速度快得多。另外,該例子表明,該方法的速度較低並不是由於方法必須從類中檢索數據,因爲即使他們也這樣做,函數的速度更快。 當然,這種做事方式並不理想。我想知道是否有辦法加快方法調度。有什麼

    3熱度

    1回答

    我想創建一個S4方法'myMethod',它不僅調用該函數的第一個參數的類,還調用其中一個時隙的值這類的。 例如 myObject的: @ SLOT1 = 「A」 @ ... 我想myMethod的(myObject的),以回報東西SLOT1 = 「A」 不同,插槽2 = 「B」。 我可以避免硬編碼'myObject'代碼中的'if'嗎?

    2熱度

    1回答

    在我的包中,我想從提供的包中繼承TheBaseClass類(因此它不在我的範圍內)。有一個創建這個類的對象的函數。這是該代碼的一個最簡單的例子。 setClass("TheBaseClass", representation(a="numeric")) initBase <- function() new("TheBaseClass", a=1) # in reality more comple

    4熱度

    1回答

    我注意到,定義了as.matrix或as.data.frame,因爲S4類 的S3方法使得例如lm (formula, objS4)和prcomp (object)開箱即用。如果將它們定義爲S4方法,則這不起作用。 爲什麼這些方法是定義爲S3還是S4方法很重要? 示例as.data.frame: setClass ("exampleclass", representation (x = "data

    1熱度

    2回答

    我正在使用tm軟件包,並且正在尋找使用R的文檔的Flesch-Kincaid分數。我發現koRpus軟件包有很多指標,包括閱讀級別,並開始使用它。但是,返回的對象似乎是一個非常複雜的s4對象,我不明白如何解析。 所以,我將此我的文集: txt <- system.file("texts", "txt", package = "tm") (d <- Corpus(DirSource(txt, en

    10熱度

    2回答

    有人可以解釋爲什麼在定義一個新類並重載操作符時,重載舊式S3類註冊表中的操作符時無法按預期工作工作。 如以下示例所示。 這不起作用。 require(ff) setOldClass(Classes=c("ff_vector")) setMethod( f="*", signature = signature(e1 = c("ff_vector"), e2 = c("ff_v

    5熱度

    3回答

    我想查看與某個對象類關聯的所有方法的列表。例如。如果我看到某個模型適合例程返回類「foo」的對象,我想知道該包(或任何其他包)是否已定義方法,如simulate.foo,update.foo,coef.foo,print.foo等。我該怎麼做這個? 我知道methods解決逆問題(假設S3級),但顯然我不想通過了爲了找出如果我的課感興趣有一個定義的print函數中的每個對象進行搜索。我可能在這裏忘