r - with() 函数内的脚本没有数据帧输出
问题描述
我需要从主数据框的子集创建一个新的计算辅助数据框。想到的最好的主意是下面的脚本,但是没有输出……哈哈!
set.seed(124)
avg_sum <- data.frame(diag_grp= c("benign", "malignant", "mixed"),
cc_ttl_avg= runif(3, min=10000, max=15000),
cc_ttl_drct_avg= runif (3, min=7000, max=10000),
cc_drct_srg_avg= runif (3, min=5000, max=7000),
cc_prof_drct_avg= runif (3, min=2000, max=5000),
cc_tech_drct_avg= runif (3, min=2000, max=5000),
dummy1= runif (3, min=1000, max=15000),
dummy2= runif (3, min=1000, max=15000),
dummy3= runif (3, min=1000, max=15000))
with(subset(avg_sum, diag_grp=="benign"),
{
benign_avg_sum <-
data.frame(rbind(c(key= "cc_ttl_avg", value=
paste(as.character(trunc(cc_ttl_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_ttl_drct_avg", value=
paste(as.character(trunc(cc_ttl_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_drct_srg_avg", value=
paste(as.character(trunc(cc_drct_srg_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_prof_drct_avg", value=
paste(as.character(trunc(cc_prof_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_tech_drct_avg", value=
paste(as.character(trunc(cc_tech_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep=""))))
})
预期的输出应该是如下所示的数据框:
key value
1 cc_ttl_avg 127% TDC
2 cc_ttl_drct_avg 100% TDC
3 cc_drct_srg_avg 75% TDC
4 cc_prof_drct_avg 34% TDC
5 cc_tech_drct_avg 52% TDC
解决方案
您需要在with
.
set.seed(124)
avg_sum <- data.frame(diag_grp= c("benign", "malignant", "mixed"),
cc_ttl_avg= runif(3, min=10000, max=15000),
cc_ttl_drct_avg= runif (3, min=7000, max=10000),
cc_drct_srg_avg= runif (3, min=5000, max=7000),
cc_prof_drct_avg= runif (3, min=2000, max=5000),
cc_tech_drct_avg= runif (3, min=2000, max=5000),
dummy1= runif (3, min=1000, max=15000),
dummy2= runif (3, min=1000, max=15000),
dummy3= runif (3, min=1000, max=15000))
benign_avg_sum <- with(subset(avg_sum, diag_grp=="benign"),
{
data.frame(rbind(c(key= "cc_ttl_avg", value=
paste(as.character(trunc(cc_ttl_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_ttl_drct_avg", value=
paste(as.character(trunc(cc_ttl_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_drct_srg_avg", value=
paste(as.character(trunc(cc_drct_srg_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_prof_drct_avg", value=
paste(as.character(trunc(cc_prof_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep="")),
c(key= "cc_tech_drct_avg", value=
paste(as.character(trunc(cc_tech_drct_avg/cc_ttl_drct_avg*100)), "% TDC", sep=""))))
})
print(benign_avg_sum)
#> key value
#> 1 cc_ttl_avg 127% TDC
#> 2 cc_ttl_drct_avg 100% TDC
#> 3 cc_drct_srg_avg 75% TDC
#> 4 cc_prof_drct_avg 34% TDC
#> 5 cc_tech_drct_avg 52% TDC
由reprex 包(v0.3.0)于 2019 年 7 月 31 日创建
推荐阅读
- kentico - Kentico:您使用的 Kentico 版本中不提供“MVTesting”功能。有关更多详细信息,请参阅事件日志
- python - 如何使用 kivy 向特定用户发送消息
- c - C语言printf添加额外无用信息
- arrays - XSLT 1.0:使用 XSLT 格式化 JSON 输出/删除 JSON 数组中的默认引号
- css - 选择选项时如何更改 ng-select 控件的样式
- javascript - 覆盖输入框的焦点触发器
- here-api - 这里 API 令牌在 24 小时后过期
- python - 你可以在 matplotlib 中的绘图线上添加一个数字吗?
- python - 使用元组列表索引 Pandas DataFrame
- azure-functions - Azure Functions 基础映像差异/比较