r - 按列减去值,值翻转
问题描述
假设我有这个数据框,
data<- data.frame (A = c (6,5,4,3,2,1), B=c(0,0,4,4,0,0))
我想从 A 中减去 B,来创建这个,C=AB
data2 <- data.frame(A = c (6,5,4,3,2,1), B=c(0,0,4,4,0,0), C=c(6,5,0,0,0,0))
从第4行开始,A小于B,但是我不想要负值,我想保持C>=0,超出的值将滚动到下一行并进行扣除。知道我应该应用哪个功能吗?
解决方案
也许不是一个非常干净的解决方案,但您的问题似乎意味着迭代搜索:
while(sum(data$B)>0)
data <- data.frame(A=ifelse(data$A>=data$B,data$A-data$B,0),
B=lag(ifelse(data$A>=data$B,0,data$B-data$A),default=0))
推荐阅读
- wpf - 使用异步时 Thread.CurrentThread.CurrentUICulture 更改 .net 4.8
- docker - 如何从 docker 内部检查已安装的 dockerhost 文件系统/卷上的打开文件
- flutter - 定位OverlayEntry debug和release moe不一致
- java - 如何使用 JAX-B 将两个 XML 合并为一个?
- javascript - 为什么 Axios 发布错误的数据?
- r - 如何将包含正则表达式的代码包装到函数中
- r - 在 Google Colab 笔记本中运行 R 内核时,如何将数据框导出为 .csv 文件?
- asp.net - 如何在 ASP.NET MVC 和实体框架中制作预填充表单
- cobol - Cobol 在不应该时将多行视为一行
- r - 如何在 R 中创建汇总的人口统计表