如何编写一个函数,将模型作为R中的参数

时间:2015-07-11 18:28:13

标签: r

R中的某些函数可以将模型作为参数。例如,函数lm(weight_group)将“weight_group”作为参数,并将其解释为“使用权重作为Y进行回归,将组作为X进行回归”。我该如何编写这样的函数?

例如,我有以下数据称为“GDP_data”: (请运行代码段以显示数据表。我不知道如何让它自动显示)

<table style="width:100%">
  <tr>
    <td>State</td>
    <td>City</td> 
    <td>GDP</td>
  </tr>
  
  <tr>
    <td>TX</td>
    <td>Austin</td> 
    <td>678</td>
  </tr>
  
  <tr>
    <td>TX</td>
    <td>Dallas</td> 
    <td>1035</td>
  </tr>
  
  <tr>
    <td>TX</td>
    <td>Houston</td> 
    <td>2035</td>
  </tr>
  
  <tr>
    <td>...</td>
    <td>...</td> 
    <td>...</td>
  </tr>
  
  <tr>
    <td>NY</td>
    <td>New York</td> 
    <td>10007</td>
  </tr>
  
  <tr>
    <td>NY</td>
    <td>Essex</td> 
    <td>2007</td>
  </tr>
  
</table>

我想写一个名为GDP_sum的函数,它可以计算一个州所有城市的GDP总和。代码GDP_sum(数据= GDP_data,GDP~州)应该给出每个州GDP总量的向量。

1 个答案:

答案 0 :(得分:1)

我建议您自己使用aggregate。这就是我想出的:

state <- c("California","Texas","Texas")
city <- c("San Francisco","Dallas","Austin")
GDP <- c(10000,20000,30000)
data <- data.frame(state,city,GDP)

GDP_sum <- function(data1, slice){
  newDf <- aggregate(slice, data = data1, sum)
  return(newDf)
}

GDP_sum(data, GDP~state)

       state   GDP
1 California 10000
2      Texas 50000