【发布时间】:2015-08-27 08:02:18
【问题描述】:
使用data viewer in Rstudio version 0.99,我想按国家名称(或其他字符向量)过滤一个 dplyr 分组表。这会破坏数据查看器。 Rstudio 说“无法对数据进行排序或过滤”,R 返回的错误非常神秘:
Error in vapply(x[[col]], `[`, 0, 1) : values must be type 'double',
but FUN(X[[1]]) result is type 'character'
虹膜样本数据示例
我可以使用 iris 样本数据集重现这一点。
irisgrouped <- iris %>%
mutate(Species = as.character(Species)) %>% # Change to a character vector
group_by(Sepal.Length)
按Species 过滤的数据查看器会中断消息"failure to sort or filter data"。
基于我使用的数据的示例
这也是我使用dput()的数据集的一部分
library(dplyr)
dtf <- structure(list(itemcode = c(1632, 1632, 1632, 1632, 1632, 1632
), year = c(1961L, 1961L, 1961L, 1961L, 1961L, 1961L), country = c("Albania",
"Austria", "Bulgaria", "Denmark", "Finland", "France")), .Names = c("itemcode",
"year", "country"), row.names = c(NA, -6L), class = "data.frame")
上面可以粘贴在R命令中,在R studio table viewer中过滤没有问题。但是如果我再次对数据框进行分组:
dtf2 <- dtf %>% group_by(itemcode)
过滤中断并显示“未能对数据进行排序或过滤”消息。
您能否指出过滤器对分组数据帧中的某些字符向量不起作用的原因?
sessionInfo()
如果这很重要,这是我的 sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_IE.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_IE.utf8 LC_COLLATE=en_IE.UTF-8
[5] LC_MONETARY=en_IE.utf8 LC_MESSAGES=en_IE.UTF-8
[7] LC_PAPER=en_IE.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_IE.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.4.1
loaded via a namespace (and not attached):
[1] assertthat_0.1 DBI_0.3.1 lazyeval_0.1.10 magrittr_1.5
[5] parallel_3.1.1 Rcpp_0.11.4 tools_3.1.1
【问题讨论】:
-
嗯,我也无法重现,即使在
View。我有 Windows 7、dplyr 0.41、R 3.2、RStudio 0.99.441。 -
如果您的问题是关于 RStudio IDE 的某个特定功能无法正常工作,他们的支持页面可能是更合适的查询地点。
-
@joran 我已经发布了a message on their support form as a reply to a user who had a similar problem。我不确定这是否与我的系统配置有关,这就是我想从其他用户那里收集知识的原因。
-
您好,我构建了 RStudio 的数据查看器,我可以重现您的问题。我已经提交了一个错误,希望很快会在样片中得到修复。
-
谢谢@Jonathan 有错误报告的链接吗?