根据数据中的几个属性计算样本并显示结果

时间:2016-01-27 20:56:04

标签: r for-loop count

我有一个与已批准的贷款相关的属性数据框,正在等待审核或被拒绝。数据框中的一个属性字段是贷款申请所在的城镇。我想创建一个新的矩阵,其中包含行中的所有城镇名称以及已批准的贷款数量,等待审核或列中拒绝的数量。以下是说明性数据:

Town<-c("Andover","Cheshire", "Andover", "Burlington", "Albany", "Cheshire")
Status<-c("Approved","Declined", "Pending", "Pending", "Approved", "Declined")
ApplicationYear<-c(2013,2015,2014,2014,2015,2013)
Data<-data.frame(cbind(Town,Status,ApplicationYear))

     Town   Status ApplicationYear
1    Andover Approved            2013
2   Cheshire Declined            2015
3    Andover  Pending            2014
4 Burlington  Pending            2014
5     Albany Approved            2015
6   Cheshire Declined            2013

我可以按状态和城镇安排贷款计数,使用表格“for”每种状态类型然后cbind。

Approved<-table(Data[Data$Status=="Approved",]$Town)
Declined<-table(Data[Data$Status=="Declined",]$Town)
Pending<-table(Data[Data$Status=="Pending",]$Town)
cbind(Approved,Declined,Pending)

          Approved Declined Pending
Albany            1        0       0
Andover           1        0       1
Burlington        0        0       1
Cheshire          0        2       0

但是,我想找到一种更优雅,更短的方法来使用for或other命令获得相同的结果。

1 个答案:

答案 0 :(得分:2)

使用table(Data$Town, Data$Status) 功能,只需使用整列:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<head>
<!--[if IE 8]>
<meta http-equiv="X-UA-Compatible" content="IE=7">
<![endif]-->

我认为这是最简单的方法。