r - 按条件从数据框中的值中减去
问题描述
我想从我的数据框中选择一些列,并从满足条件的所有值中减去一个数字。在我的情况下,我想选择我的数据的 5:10 列,并从 >5 的所有值中减去 10,同时保持所有其他值相同,然后保存这个数据框。
我尝试过的解决方案(如下)只是从所有值中减去 10。我怎样才能做到这一点?非常感谢任何帮助。
data <- data.frame(replicate(10,sample(-1:10,1000,rep=TRUE))) #generate random data
# what i have tried so far
(data[, 5:10] > 5) - 10
解决方案
在 base r 中,您可以使用 lapply
lapply(data[, 5:10], function(x) ifelse(x > 5, x - 10, x))
在 dplyr 你可以做
data <- data.frame(replicate(10,sample(-1:10,1000,rep=TRUE)))
library(dplyr, warn.conflicts = F)
data %>%
mutate(across(5:10, ~ifelse(.>5, . - 10, .)))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 9 3 3 5 -2 -4 1 4 -4 -1
2 1 0 7 7 -2 3 2 -1 4 -3
3 2 -1 8 1 1 1 -4 0 0 3
4 9 9 4 6 -2 -3 3 0 0 0
5 7 -1 9 5 0 1 1 -1 -1 2
6 4 9 4 7 4 1 0 -1 -3 -1
.
.
.
.
推荐阅读
- php - 如何在 WooCommerce 中创建有效的自定义产品查询?
- python - tensorflow 2.1.0 的安装错误
- progressive-web-apps - 异步模块定义和渐进式 Web 应用程序之间有什么关系?
- python - 如何从python中的两个单独的文本文件中提取基于子字符串的行?
- javascript - 无法从从 Promise 获得的对象中检索值
- asp.net-core - 在 F# 中使用“IHttpClientFactory”的常规方法是什么?
- makefile - 是否预期 bitbake 立即分配行为?
- docx-wasm - 如何理解 wasm 中的 br_if?
- android - 要导入哪个类来声明工具栏变量 unsing androidx
- python - Scrapy:如何使用 CSS 和 XPath 获取地址?