【发布时间】:2017-07-02 05:54:47
【问题描述】:
假设我有一个 R data.frame:
> x <- data.frame()
我还有一个使用 sprintf() 构建的 SQL 查询:
> (query <- sprintf("select %s from %s %s", "names", "name_table", "where age > 20"))
[1] "select names from name_table where age > 20"
我打算将它封装在一个函数中,以便用来自query 的结果填充data.frame x,并且只是在顶部洒上几滴水,我想告诉我未来的自己query用于生成data.frame 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"
【问题讨论】:
标签: r dataframe attributes attr