修复多个警告“未知列”

对于所有types的命令(例如,str(x)在软件包上安装更新),我都有一个“未知列”的持久多重警告,并且不知道如何debugging或修复它。

警告“unknown column”显然与我重命名的tbl_df中的一个variables相关,但警告出现在与tbl_df看似无关的所有命令中(例如,在包上安装更新,str(x),其中x是只是一个字符vector)。

我一直遇到同样的问题,虽然我不知道为什么会发生,但我可以事件发生的时候确定下来,从而防止它发生。

这个问题似乎是在基础R数据框和粗糙数据框中添加一个从索引派生的新列。 拿这个例子来说,在一个基本的R数据框中添加一个新的列( age ):

 base_df <- data.frame(id = c(1:3), name = c("mary", "jill","steve")) base_df$age[base_df$name == "mary"] <- 47 

这工作没有返回警告。 但是当用一个骰子做同样的事情时,它会发出一个警告(因此,我认为引起了这个奇怪的,似乎是无端的多重警告问题):

 library(tibble) tibble_df <- tibble(id = c(1:3), name = c("mary", "jill","steve")) tibble_df$age[tibble_df$name == "mary"] <- 47 Warning message: Unknown column 'age' 

肯定有更好的方法来避免这种情况,但是我发现首先创build一个NA的向量来完成这个工作:

 tibble_df$age <- NA tibble_df$age[tibble_df$name == "mary"] <- 47 

更新:我相信这已经被修复在RStudio v1.1.103或更高版本中由@ kevin-ushey提交 。 所以在下一个RStudio发行版中,这个问题不再是一个问题了。

这是RStudio中的Diagnostics工具的问题(在代码中显示警告和可能的错误的工具)。

https://support.rstudio.com/hc/en-us/community/posts/115001180488-Diagnostics-and-tibble-warning

作为解决方法,您可以在打开的文件的开头添加:

 # !diagnostics off 

然后保存文件,警告应该停止显示。

您也可以在首选项/代码/诊断中禁用诊断。

我相信会出现警告,因为RStudio中的诊断工具会分析源代码来检测错误,当它执行诊断检查时,它将访问未经初始化的Tibble中的列,并给出我们所看到的警告。 警告没有出现,因为你运行的是不相关的东西,它们在执行RStudio诊断时出现(当一个文件被保存,然后被修改,当你运行某个东西的时候)。

使用“dplyr”包时遇到此问题。
对于那些在“dplyr”库中使用“group_by”函数后面临的问题:

我发现取消组合variables解决了未知的列警告问题。 有时候我不得不迭代几次,直到问题解决。

我碰到这个问题,除非通过使用dyplyr块创build的tibble。 这里是对军刀代码的轻微修改,以显示我是如何来到相同的错误。

 library(dplyr) df <- data.frame(id = c(1,1:3), name = c("mary", "jo", "jill","steve")) t <- df %>% group_by(id) %>% summarize (n = n()) t str(t) t$newvar[t$id==1] <- 0 

假设我想select以下列(s)

 best.columns = 'id' 

对我来说,以下是警告:

 df%>% select_(one_of(best.columns)) 

虽然这个按预期工作,但据我所知, dplyr应该是相同的。

 df%>% select_(.dots = best.columns)