首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Na.interpolation中的错误(data[,i],选项):输入x不是数字

Na.interpolation中的错误(data[,i],选项):输入x不是数字
EN

Stack Overflow用户
提问于 2018-08-24 11:44:31
回答 1查看 791关注 0票数 2

我有以下问题。我有一个data.frame,由国家“标识符”(letters+numbers)、“年份”(数字)、“唯一标识符”(identifier+year)、“劳工统计”(数字)和“劳工统计”(数字)组成,其中缺少劳工market2的一些数据,需要插值。运行库(ImputeTS)后,将收到以下消息:

库(ImputeTS)警告消息:未知或未初始化的列:'x‘。

跑后

数据<- na.interpolation(数据)

我得到以下错误:

警告信息: 1:未知或未初始化的列:'x‘。2: imputeTS:由于na.interpolation(数据,i,选项)中的错误>,没有对第1列执行任何计算:输入x不是数字 3: imputeTS:由于na.interpolation(数据,i,选项)中的错误>,没有对第2列执行任何计算:输入x不是数字 4: imputeTS:由于na.interpolation(数据,i,选项)中的错误>,没有对第3列执行任何计算:输入x不是数字 5: imputeTS:由于na.interpolation(数据,i,选项)中的错误>,没有对第5列执行任何计算:输入x不是数字

有趣的是,在我将R版本从3.2.3升级到最新的3.5.1 (2018-07-02) --“羽毛喷雾”之后,na.interpolation(数据)停止了工作。

我想知道是否有一个解决方案,可以消除警告,执行interpolatioN,而不返回到R的旧版本。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 06:15:44

我想您的dataset中的一个列存在问题。这条消息清楚地表明您有一个非数字列。你试过跳过非数字列吗?最近,我遇到了同样的问题,正在用imputeTS包进行元素方面的估算。我的解决办法是跳过字符列。在我的例子中,我有一个代表国家的数据列表。有些数据格式只有前两列(国家和年份),它们是字符。

代码语言:javascript
复制
list_imputed_values <- lapply(list_of_dataframes, function(x){
if (ncol(x) == 3) { # apply imputation to the third column only
name <- names(x)[3]
fixed <- x[, 1:2]
imputable <- x[, 3]
imputed <- as.data.frame(imputeTS::na.interpolation(imputable))
names(imputed) <- name
x <- cbind(fixed, imputed)
} else if (ncol(x) == 2) { # do not apply imputation because columns are non-numeric
x <- x[, 1:2]
 } else {  # apply imputation to all non-numeric columns
fixed <- x[, 1:2]
imputable <- x[, 3:ncol(x)]
imputed <- imputeTS::na.interpolation(imputable)
x <- cbind(fixed, imputed)
  }})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52003760

复制
相关文章

相似问题

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