【发布时间】:2016-11-26 06:28:03
【问题描述】:
我问这个问题是因为,作为 R 的新手,我很好奇为什么我写的一段代码可以正常工作,然后同一行代码在下次运行时会产生错误。
这是我正在使用的表的示例。
输入:
structure(list(a5species = structure(c(4L, 1L, 6L, 3L, 14L, 3L,
8L, 8L, 8L, 8L, 8L, 8L, 3L, 4L, 4L, 8L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 8L, 8L, 8L, 8L, 8L, 8L, 4L, 8L, 8L, 8L, 3L, 8L, 8L, 8L,
12L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
8L, 8L, 8L, 8L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 3L, 6L,
3L, 4L, 4L, 3L, 3L, 6L, 6L, 3L, 3L, 3L, 3L, 3L, 3L, 6L, 3L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 8L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 1L, 4L, 3L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 3L,
4L, 8L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 3L, 12L, 12L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 13L, 4L, 4L, 4L, 6L, 4L, 3L,
12L, 14L, 6L, 3L, 3L, 4L, 4L, 10L, 4L, 3L, 3L, 3L, 3L, 10L, 4L,
4L, 4L, 4L, 12L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 6L, 5L, 4L, 10L, 12L, 4L, 4L, 3L, 6L, 4L, 3L,
4L), .Label = c("coustani", "demeilloni", "funestus", "gambiae",
"garnhami", "indetermine", "marshallii", "pharoensis", "pretoriensis",
"rufipes", "salbaii", "squamosus", "tenebrosus", "ziemani"), class = "factor"),
Vila = c("Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Motaze", "Motaze", "Motaze",
"Motaze", "Motaze", "Motaze", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Chicutso", "Chicutso", "Chicutso",
"Chicutso", "Chicutso", "Panjane", "Panjane", "Panjane",
"Panjane", "Panjane", "Panjane", "Panjane", "Panjane", "Panjane",
"Panjane", "Panjane", "Panjane", "Panjane", "Panjane", "Magude",
"Magude", "Magude", "Magude", "Magude", "Magude", "Magude",
"Magude", "Magude", "Magude", "Magude", "Magude", "Magude",
"Magude", NA, NA, "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", NA, NA, "Muginge",
"Muginge", "Muginge", "Muginge", "Muginge", "Muginge", "Muginge",
"Muginge", "Muginge", "Muginge", "Mapulanguene", "Mapulanguene",
"Mapulanguene", "Mapulanguene", "Mapulanguene", "Mapulanguene",
"Mapulanguene", "Mapulanguene", "Mapulanguene", "Mapulanguene",
"Mapulanguene", "Mapulanguene")), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -321L), .Names = c("a5species",
"Vila"))
我使用这个代码来组织 Vila 的物种:
test %>% + group_by(Vila) %>% filter(a5species=="gambiae") %>% + summarise(n=n())
使用此代码生成了我想要的表,但下次我尝试运行代码时它停止工作并产生错误:
Error in group_by_(.data, .dots = lazyeval::lazy_dots(...), add = add) :
object 'Vila' not found
我意识到这与此处发布的问题类似: R object not found if defined within a function when using data.table dplyr
但是我正在使用 dplyr_0.4.3,这个问题表明他们遇到的问题现在已经解决了,而且我的代码也确实在某个时候起作用。此外,关于这篇文章的讨论非常技术性,而且超出了我的想象。
知道为什么我的代码突然停止工作了吗?
谢谢。
【问题讨论】:
-
当我错过管道时,我也遇到了同样的情况(即
%>%)