【问题标题】:Obtaining proportions within subsets of a data frame获取数据框子集内的比例
【发布时间】:2020-09-10 16:48:37
【问题描述】:

我正在尝试获取数据框子集内的比例。输入是等级、全额支付和冲销。我尝试使用

DF$proportion<-as.vector(unlist(tapply(DF$Grade,paste(DF$Fully Paid ,DF$ Charged Off,sep="."),FUN=function(x){x/sum(x)}))

基于上一篇文章Calculate proportions within subsets of a data frame 中对同一问题的回答,但没有运气。我猜是因为 Grade 是我数据中的字符而不是数字。

【问题讨论】:

  • 您有可以分享的示例数据吗?
  • 是的,这是我正在使用的数据,等级是 A-G,下面是 Charged Off 和 Full Paid 的计数。 A B C D E F G. 注销 1486 3657 5344 3375 1238 214 27 全额支付 24265 26453 23025 9665 2628 296 53
  • 您也必须提供所需的输出。此外,您所指的帖子只是使用 1 个数字列来获取比例。您有 2 个数字列。您要获取哪个列的比例。如果你能更具体一点,我可以帮助你。您正在使用 paste 表示不正确的数字,因为它会将 2 个数字连接到一个十进制值。
  • 谢谢,对 R 来说还是很新的,因此所有这些错误。让我重新解释得更好。我使用了代码 > LT prop.table(LT) 道具表给了我每个变量相对于整个表的比例,但我只需要每列的比例。所以我需要知道每个等级的每个贷款状态类别的比例。我之前使用的命令只是根据我过去能找到的最相似的帖子在黑暗中拍摄的。我知道这里的解决方案很简单,只是不知道它是什么。
  • 你有没有尝试解决方案。

标签: r plyr


【解决方案1】:

根据您的 cmets,以下是您应该为每一列尝试的代码。

DF$Charged_off_proportion <- as.vector(unlist(tapply(DF$Charged_Off,DF$Grade,FUN=function(x){x/sum(x)})))

同样,您可以更改其他列的列名,例如

DF$Fully_Paid_proportion <- as.vector(unlist(tapply(DF$Fully_Paid,DF$Grade,FUN=function(x){x/sum(x)})))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    相关资源
    最近更新 更多