- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个大型数字数据集(~700 行,350,000 列,作为 R 中的 data.table 读入),其中包含一些我想尽快用列平均值替换的 NA。我发现以前的帖子用 0 替换了 NA,但是当我修改解决方案以代替输入列的意思时,我得到了 j,列号。似乎我必须遗漏一些明显的东西......关于如何使用这种方法计算列的任何建议?
Fastest way to replace NAs in a large data.table
#original code
f_dowle3 = function(DT) {
for(j in seq_len(ncol((DT)))
set(DT,which(is.na(DT[[j]])),j,0)
}
#modified code
impute = function(DT) {
for(j in 2:ncol(DT))
set(DT,which(is.na(DT[[j]])),j,mean(DT[,j],na.rm = TRUE))
}
test_impute = fread("test_impute.csv")
test_impute
ID snp1 snp2 snp3 snp4
1: 1 2 1 1 0
2: 2 2 2 0 0
3: 3 2 NA 0 NA
4: 4 2 1 2 0
5: 5 2 NA 2 0
6: 6 2 1 1 0
7: 7 1 1 NA 0
8: 8 NA 1 0 0
9: 9 2 2 2 NA
10: 10 1 1 0 0
impute(test_impute)
test_impute
ID snp1 snp2 snp3 snp4
1: 1 2 1 1 0
2: 2 2 2 0 0
3: 3 2 3 0 5
4: 4 2 1 2 0
5: 5 2 3 2 0
6: 6 2 1 1 0
7: 7 1 1 4 0
8: 8 2 1 0 0
9: 9 2 2 2 5
10: 10 1 1 0 0
最佳答案
您不能使用 dt1[, j]
从数据表中抓取一列。
dt1[, 1]
# [1] 1
dt1[, 2342]
# [1] 2342
DT[, j]
至
DT[[j]]
修理。
set.seed(47)
n = 10
ncol = 10
dt1 = data.table(replicate(ncol, expr = {
ifelse(runif(n) < 0.2, NA_real_, rpois(n, 10))
}))
impute1 = function(DT) {
for (j in 2:ncol(DT))
set(DT, which(is.na(DT[[j]])), j, mean(DT[[j]], na.rm = TRUE))
}
dt1
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
# 1: 6 11 10 7 13 10 12 8 13 12
# 2: 10 8 NA 7 16 10 10 8 5 5
# 3: 14 7 9 9 NA 13 9 NA 10 NA
# 4: 4 4 13 10 7 10 14 8 13 15
# 5: 7 NA 8 NA 12 NA 15 10 11 8
# 6: 6 9 7 15 NA 5 12 15 10 5
# 7: 4 9 5 NA 10 12 9 8 12 14
# 8: 12 8 NA 9 7 NA 11 4 8 11
# 9: 8 10 12 14 10 NA 11 9 10 10
# 10: 7 6 NA 13 8 14 11 6 10 NA
impute1(dt1)
dt1
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
# 1: 6 11 10.000000 7.0 13.000 10.00000 12 8.000000 13 12
# 2: 10 8 9.142857 7.0 16.000 10.00000 10 8.000000 5 5
# 3: 14 7 9.000000 9.0 10.375 13.00000 9 8.444444 10 10
# 4: 4 4 13.000000 10.0 7.000 10.00000 14 8.000000 13 15
# 5: 7 8 8.000000 10.5 12.000 10.57143 15 10.000000 11 8
# 6: 6 9 7.000000 15.0 10.375 5.00000 12 15.000000 10 5
# 7: 4 9 5.000000 10.5 10.000 12.00000 9 8.000000 12 14
# 8: 12 8 9.142857 9.0 7.000 10.57143 11 4.000000 8 11
# 9: 8 10 12.000000 14.0 10.000 10.57143 11 9.000000 10 10
# 10: 7 6 9.142857 13.0 8.000 14.00000 11 6.000000 10 10
colMeans
速度非常快,因此总体而言这可能会更快,尤其是当您拥有尽可能多的列时。
impute2 = function(DT) {
means = colMeans(DT, na.rm = T)
for (j in 2:ncol(DT))
set(DT, which(is.na(DT[[j]])), j, means[j])
}
关于r - 用大数据估算列平均值的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639052/
架构设计(九):估算 作者: Grey 。 原文地址: 博客园:架构设计(九):估算 。 CSDN:架构设计(九):估算 。 估算在系统设计中非常重要,这决定了你的设计是否可以满足要求,
我有以下 JavaScript 代码,它使用 sql.js库与远程 SQL 数据库通信。 var xhr = new XMLHttpRequest(); xhr.open('GET', 'https:
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我正在使用启用了 ARC 的 Cocos2d 2.0。我的游戏是一个随机生成的游戏,所以我需要在游戏中间的场景中加载/卸载纹理(spritesheet-batchnode)。我正在尝试从文件中删除 s
我有一个不完整的数据框,incomplete_df,如下所示。我想用相应 id 的平均 amount 来估算缺失的 amount。如果该特定 id 的平均值本身就是 NaN(参见 id=4),我想使用
我正在研究 NOAA AVHRR 31 年的每日海面温度 (SST) 数据。数据采用 NetCDF 格式,维度为 28(经)x 40(纬度)x 11686(天)。我应该计算每月的气候平均值(例如 31
我想为给定现有值的变量估算缺失值。 在 var2 ,我们注意到有很多NA s。 如果任何 2 个 ID 相同,则它们的值 var2是相同的。 如果 id 没有 var2 的值,就像 id==2 的情况
我想了解(大概)读取 Android SD 卡上存储的大文件(50MB 到 100MB)需要多长时间。我在 Google Nexus One 上的 Android 2.3.3 上使用以下代码。这会给我
估计 json 对象(如果 JSon 大小可用)将在 MongoDB 中占用多少存储内存的最佳方法是什么?有某种相关公式吗? 最佳答案 有 Object.bsonsize() 方法 mongo She
我有缺失值的数据框 (DF1),我想从不同的数据框 (DF2) 中估算这些缺失值,同时保留索引而不对它们进行排序(非常重要)。我正试图找到最有效的方法来做到这一点。 DF1: index id t
我正在尝试估算将返回大量结果的应用引擎查询的结果总量。 为了做到这一点,我为每个实体分配了一个介于 0 和 1 之间的随机 float 。然后我执行了我想用以下 3 个设置估计总结果的查询: * I
我正在尝试制作一个简单的 js 机器人,它检查每个区 block 的 eth(或链的主要 token )并将其发送到另一个钱包。 我有一个工作机器人: const { ethers } = requi
我最近一直在考虑将 Azure 作为许多具有 MSSql 数据库后端的小型 asp.net 网站的托管平台。我目前使用非 Microsoft 主机,每月收取固定费用。 我看过的 Azure 演示和网络
我是 C++ 新手。我正在尝试使用计算机系统的随机数生成器根据 Ernesto Cesaro 定理统计确定 Pi 的值。但是我现在所做的可以输入一个种子数并生成100个伪随机数,然后估计pi的值。生成
在我看来,我并不完全理解 FLOPS 的概念。在 CUDA SAMPLES 中,有 Matrix Multiplication Example (0_Simple/matrixMul)。在此示例中,每
我是一名优秀的程序员,十分优秀!