首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用分类均值对缺失值进行归因?

用分类均值对缺失值进行归因?
EN

Stack Overflow用户
提问于 2019-03-20 03:45:07
回答 2查看 62关注 0票数 0

我有一个包含多列的数据集,其中一列缺少所需的数据块。

缺少数据的列df$Variable总是归于一个特定的人df$Name。当df$Variable中有缺失数据时,有没有办法估算每个人的平均值,而不是整个数据集的平均值?

我一直在使用imputeTS库。

EN

回答 2

Stack Overflow用户

发布于 2019-03-20 04:21:29

如果没有可重复的例子,很难做出明确的回答,但考虑到您所说的,这样的东西应该是可行的:

代码语言:javascript
复制
library('tidyverse')

df <- data.frame(Name = c(rep("A", 5), rep("B", 5)),
                 Variable = sample(c(1, 2, 3, NA), 10, replace = TRUE))

df %>%
  group_by(Name) %>%
  mutate(non_na_mean = mean(Variable, na.rm = T)) %>%
  ungroup() %>%
  mutate(newVariable = ifelse(is.na(Variable), non_na_mean, Variable))
票数 1
EN

Stack Overflow用户

发布于 2019-03-20 04:34:31

在看不到你的数据框架的情况下,我相信这是可行的。

代码语言:javascript
复制
set.seed(7)
# make some fake data
df <- data.frame(Name = rep(as.character(c("A", "B", "C", "D")), 10), Variable = sample(1:100, 40))
# change some to NA
df[which(df$Variable > 40),"Variable"] <- NA

# Fill in NA's for D with the mean of D
df[which(df$Name == "D" & is.na(df$Variable)),"Variable"] <-
  mean(df[which(df$Name == "D"),"Variable"], na.rm = TRUE)

你也可以遍历其他的‘变量’

代码语言:javascript
复制
variable_vec <- c("A", "B", "C", "D")
for(i in 1:length(variable_vec)){
df[which(df$Name == i & is.na(df$Variable)),"Variable"] <-
  mean(df[which(df$Name == i),"Variable"], na.rm = TRUE)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55248921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档