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总量的向量。
答案 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