r - 如果数据帧中的每个值大于某个数字,如何将其除以某个数字
问题描述
所以我有一个混合值的数据框——它非常混乱。我有超过 10 分的值和 100 分的值。我想将它们标准化为百分比。
我的逻辑是,如果某个值大于 10,那么我可以除以 100。如果某个值等于或小于 10,我会将这些值除以 10。
当前帧
col_1 col_2 col_3
40 16 18
2 9 20
89 3 7.4
23 8 34
新框架
col_1 col_2 col_3
.40 .16 .18
.20 .90 .20
.89 .30 .74
.23 .80 .34
解决方案
使用此示例数据框
dd <- read.table(text="
col_1 col_2 col_3
40 16 18
2 9 20
89 3 7.4
23 8 34", header=T)
您可以在基础 R 中使用
myscale <- function(x) ifelse(x>10, x/100, x/10)
data.frame(lapply(dd, myscale))
或者如果你更喜欢 dplyr
dd %>%
mutate(across(everything(), ~if_else(.x>10, .x/100, .x/10)))
推荐阅读
- c++ - QMetaObject::connectSlotsByName:on_pbZatwierdz_clicked(QString) 没有匹配信号
- php - 即使我创建了所需的用户,也无法从 Laravel 连接到 MySQL 数据库
- javascript - opencv.js 大津阈值
- java - 无法使用 winium 在桌面应用程序中自动执行 Treeview 中的列表项
- lua - Lua:从变量中设置表名的值
- python - 使用特定键从 csv 文件创建字典
- python - Ironpython 通过 .NET 调用没有找到“数学”库
- reactjs - 从数组创建 RadioButtons 时出现意外的 ref 对象
- jquery - 如何限制可裁剪区域的宽度和高度以输出相同尺寸的图像?
- python-3.x - 获得平均时间的最快方法