r - 用范围内的随机数替换数据帧中的 NA
问题描述
我有以下名为的数据框cars
Brand year mpg reputation Luxury
Honda 2010 30 8.5 0.5
Honda 2011 28 8.5 0.6
Dodge 2010 20 6.5 0.6
Dodge 2011 23 7.0 0.7
Mercedes 2010 22 9.5 NA
Mercedes 2011 25 9.0 NA
我想用随机生成的实数替换 NA0.9 and 1.0
我正在尝试以下内容,但它正在用数字 0.9 替换 NA
cars[is.na(cars)] <- sample(0.9:1, sum(is.na(cars)),replace=TRUE)
数据表将如下所示:
Brand year mpg reputation Luxury
Honda 2010 30 8.5 0.5
Honda 2011 28 8.5 0.6
Dodge 2010 20 6.5 0.6
Dodge 2011 23 7.0 0.7
Mercedes 2010 22 9.5 *0.91*
Mercedes 2011 25 9.0 *0.97*
数据结构代码:
cars <- structure(list(Brand = c("Honda","Honda", "Dodge", "Dodge","Mercedes","Mercedes"),
year = c(2010L, 2011L,2010L, 2011L, 2010L, 2011L),
mpg = c(30L, 28L, 20L, 23L, 22L, 25L), reputation = c(8.5, 8.5, 6.5, 7L, 9.5, 9.5), Luxury = c(5L, 5.5, 6L, 6.5)),
class = "data.frame", row.names = c(NA, -4L))
解决方案
使用runif
而不是sample
:
cars[is.na(cars)] <- runif(sum(is.na(cars)), min = 0.9, max = 1)
推荐阅读
- c++ - 链表带键好还是不带键好?
- python-3.x - 在 postgres 中恢复 sql 文件时退出代码 1
- python - 计算 Pandas 中每列数据的自相关
- emacs - 如何用其他缓冲区重写整个当前缓冲区?
- php - 如何仅在 Laravel 中使用 url 和 hash 参数登录?(没有用户名和密码)
- angular - 错误 NullInjectorError: R3InjectorError(AppModule)
- python - 在没有正则表达式的情况下在 python 中验证 https URL
- excel - Vbscript 将文本文件中的数据提取到 Excel 中
- rust - rust/tonic crate 中是否有默认超时值?
- python - 如何使用正则表达式 python 获取字符串前的最后两个数字?