我问这个问题是因为,作为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,这个问题表明他们遇到的问题现在已经解决了,而且我的代码也确实在某一点上运行了。此外,关于这篇文章的讨论是非常技术性的,它超越了我的脑海。
知道为什么我的代码突然停止工作了吗?
谢谢。
答案 0 :(得分:1)
当我们从带有+
符号的R控制台复制代码时,会发生这种情况。 +
表示代码不完整。我们可以手动删除+
符号,也可以将代码复制并粘贴到一个好的编辑器中以删除它们。
test %>%
group_by(Vila) %>%
filter(a5species=="gambiae") %>%
summarise(n=n())
OP的代码
test %>% + group_by(Vila) %>% filter(a5species=="gambiae") %>% + summarise(n=n())
^^ ^^
group_by _(。data,.dots = lazyeval :: lazy_dots(...),add = add)出错 :对象'维拉'找不到