r - 用 R 中的随机值替换 1
问题描述
prob=structure(list(x1 = c(0.04, 0.05, 0.1, 0.01, NA, NA, NA, NA,
NA, NA, NA), x2 = c(0.08, 0.04, 0.05, 0.05, NA, NA, NA, NA, NA,
NA, NA), x3 = c(0.08, 0.04, 0.09, 0.04, NA, NA, NA, NA, NA, NA,
NA), x4 = c(0.03, 0.1, 0.08, 0.07, NA, NA, NA, NA, NA, NA, NA
), x5 = c(7.32, 0.05, 0.04, 1.64, NA, NA, NA, NA, NA, NA, NA)), .Names = c("x1",
"x2", "x3", "x4", "x5"), class = "data.frame", row.names = c(NA,
-11L))
如何在 x5 列中,如果 value>1 然后用 0.55 到 0.9 的随机值替换?
输出
x1 x2 x3 x4 x5
1 0.01 0.06 0.06 0.02 **0.60**
2 0.10 0.05 0.08 0.03 0.01
3 0.03 0.02 0.02 0.04 0.02
4 0.07 0.08 0.10 0.03 **0.89**
解决方案
我们可以用
library(dplyr)
prob %>%
mutate(x5 = replace(x5, !is.na(x5),
sample(seq(0.55, 0.9, by = 0.1), sum(!is.na(x5)))
推荐阅读
- c# - 对上下文的异步请求引发异常
- node.js - 403:Forbidden Error on sharepoint online rest api on reading / update a sharepoint list
- boost - Python Boost PEP 484 样式类型提示
- react-native - TypeError:未定义不是对象(评估'_ref.state)
- android - 如何在 Android 中通过 Volley API 调用访问和检索 Salesforce 对象?
- r - 如果满足特定条件,则改变列中的行
- javascript - 如何获取大型公会 discord.js 的所有成员
- sql - 如果 id 不在表中,则行级安全性返回默认集
- airflow - AirFlow DatabricksSubmitRunOperator 不接受笔记本参数
- javascript - Angular 8 中的国际化以翻译整个应用程序