我有一些数据,我可以从中获得下表:
> table(d$Purpose, d$Good.Loan)
BadLoan GoodLoan
business 34 63
car (new) 89 145
car (used) 17 86
domestic appliances 4 8
education 22 28
furniture/equipment 58 123
others 5 7
radio/television 62 218
repairs 8 14
retraining 1 8
我的问题是:从表格'表格的输出命令,是否可以使用" BadLoan"来获取/创建另一列。占总数的百分比?那就是我怎么能得到一个有[BadLoan /(BadLoan + GoodLoan)]的专栏。
答案 0 :(得分:3)
我们可以将function copy(arr1, arr2) {
for (var i = 0; i < arr1.length; ++i) {
arr2[i] = arr1[i];
}
}
输出转换为table
并使用标准data.frame
技术创建一个新的&#39}。列。
data.frame
tbl <- table(d$Purpose, d$Good.Loan)
df1 <- as.data.frame.matrix(tbl)
df1$new <- with(df1, BadLoan/(BadLoan +GoodLoan))
答案 1 :(得分:3)
prop.table
怎么样?
使用akrun的数据生成器:
> tbl <- table(d)
> tbl
Good.Loan
Purpose BadLoan GoodLoan
A 2 3
B 1 3
C 1 4
D 2 3
E 1 0
> p <- prop.table(table(d), margin=1)
> p
Good.Loan
Purpose BadLoan GoodLoan
A 0.40 0.60
B 0.25 0.75
C 0.20 0.80
D 0.40 0.60
E 1.00 0.00
根据akrun的建议,您可以使用cbind
将其附加到表中(并将输出强制转换为矩阵):
> cbind(tbl, BadPercentage=p[,'BadLoan'])
BadLoan GoodLoan BadPercentage
A 2 3 0.40
B 1 3 0.25
C 1 4 0.20
D 2 3 0.40
E 1 0 1.00