r - 如何根据R中另一个变量的频率计算一个变量的百分比
问题描述
我不确定如何写出来,但我会展示我想要的代码。我试图确定某些人在多次发生的任务中的准确性,但是,有大量的案例。
names <- c("James", "James", "James", "James", "James", "John", "John", "Fred")
outcome <- c("successful", "unsuccessful", "unsuccessful", "successful", "successful", "successful",
"unsuccessful", "unsuccessful")
accuracy <- c("60%", "60%", "60%", "60%", "60%", "50%", "50%", "0%")
df <- data.frame(names, outcome, accuracy)
在上面的例子中,我显然手动输入了数据,但我想知道如何编写一个代码来查看与人名相关的成功/不成功结果的频率,然后打印总实例的百分比在准确度列中成功。
我不确定从哪里开始,希望这是一个我没想到的简单解决方案!
提前致谢
解决方案
使用ave
.
df$accuracy <- NULL
df <- transform(df, accuracy=ave(outcome %in% "successful", names,
FUN=function(x) paste0(sum(x)/length(x)*100, "%")))
df
# names outcome accuracy
# 1 James successful 60%
# 2 James unsuccessful 60%
# 3 James unsuccessful 60%
# 4 James successful 60%
# 5 James successful 60%
# 6 John successful 50%
# 7 John unsuccessful 50%
# 8 Fred unsuccessful 0%
推荐阅读
- c# - 在 IIS 7 Windows Server 2008 R2 Enterprise SP2 上激活 MVC 网站
- mongodb - MongoDB唯一索引允许重复
- amazon-web-services - 将 AWS RDS MySQL 实例更改为 Postgres
- c# - “格式提供者”(“文化”)对 Guid 格式有什么影响?
- c++ - 在 C++ 中处理循环范围和 C 样式数组
- excel - 创建一个字符串数组,其中索引“值”是一个字符串
- .net - 缓存 - .NET Framework 类的 .NET Core 等效项
- python - 显示与用户输入值匹配的列表条目
- c - 为什么这个 C 程序返回另一个结果然后是预期的?
- amazon-web-services - 为什么在使用 AWS CLI(在调试模式下)列出公开可用的存储桶时会收到与元数据服务请求相关的 HTTP 异常?