0
比方說,我爲R data.frame:當我用一個函數做一個屬性到R data.frame時,我該如何添加一個屬性?
> x <- data.frame()
我也有一個SQL查詢我用的sprintf()建設:
> (query <- sprintf("select %s from %s %s", "names", "name_table", "where age > 20"))
[1] "select names from name_table where age > 20"
我打算在包住這函數以填充數據。框架x
與query
的結果,只是幾個灑在上面我想告訴我的未來自己用什麼query
生成數據。框架x
。我想用電話做這attr()
像這樣:
> attr(x, "query") <- query
> str(x)
'data.frame': 0 obs. of 0 variables
- attr(*, "query")= chr "select names from name_table where age > 20"
因爲函數是要看起來像
answer_maker <- function(col_names, table_name, condtions) {
query <- sprintf("select %s from %s %s", col_names, table_name, conditions)
data.frame(sql(query))
############## WHAT DO I DO HERE?
############## I want to type something py-like ...self.attr()?
attr(self, "query") <- query
}
後來我將能夠做到以下幾點
> my_first_answer <- answer_maker("names", "name_table", "where age > 20")
> attr(my_first_answer, "query")
[1] "select names from name_table where age > 20"
這是偉大的,謝謝。但是你的迴應是否暗示在像這樣的構造器對象中沒有'self.thing'風格的賦值? – d8aninja
如果您正在尋找OO風格,那麼有許多對象系統(S3,S4,Reference Classes)以及定義其他OO系統(proto,oo.R,R6)的多個包。我們在答案結尾的參考類的附加部分中說明了參考類。 –
哇...真棒 - 非常感謝你的時間! – d8aninja