【问题标题】:dplyr-error when using count()使用 count() 时出现 dplyr 错误
【发布时间】:2018-03-19 11:01:49
【问题描述】:

当我执行以下代码时:

merged <- interrogations %>% 
             filter(person=='accused') %>% 
             count(caseId)

我得到一个错误:

#Error in count(., caseId) : object 'caseId' not found

但是,当我用interrogations$caseId 查找时,变量interrogations$caseId 确实 确实存在。我做错了什么?

变量名是德文的,但我希望这会有所帮助(interrogations=einvernahmen):

structure(list(id = 1:6, person = c("Beschuldigter", "Auskunftsperson", 
"Beschuldigter", "Auskunftsperson", "Beschuldigter", "Beschuldigter"
), behoerde = c("Pol", "Pol", "Pol", "Pol", "Pol", "Pol"), datum = c("10.05.2013", 
"29.04.2013", "10.05.2013", "06.04.2013", "15.05.2013", "10.05.2013"
), anwBesch = c("ja", "nein", "ja", "nein", "ja", "ja"), anwVert =  c("ja", 
"nein", "ja", "nein", "ja", "ja"), verhalten = structure(c(2L, 
NA, 5L, 1L, 4L, 5L), .Label = c("", "Bestreiten", "Geständnis", 
"Schweigen", "Teilgeständnis"), class = "factor"), caseId = c(7L, 
7L, 7L, 7L, 7L, 7L), user = c(14L, 14L, 14L, 14L, 14L, 14L), 
dokuAussage = c("2", "", "2", "1", "2", "2"), dokuAussageAnd = c("", 
"", "", "", "", ""), uebersetzer = c("", "", "", "", "", 
""), offenEinv = c("", "", "", "", "", "")), .Names = c("id", 
"person", "behoerde", "datum", "anwBesch", "anwVert", "verhalten", 
"caseId", "user", "dokuAussage", "dokuAussageAnd", "uebersetzer", 
"offenEinv"), row.names = c(NA, -6L), class = c("tbl_df", "tbl", 
"data.frame"))

【问题讨论】:

  • 请通过dput(head(interrogations)) 提供您的一些数据,以使您的问题可重现。
  • 我没有收到错误,您运行的是哪个版本的 R 和 dplyr?
  • 这里也没有错误。但是filter(...) 返回一个空的tibble。
  • 试试dplyr::count(caseId)。很可能是与plyr的包冲突。
  • interrogations %&gt;% filter(person=='Auskunftsperson') %&gt;% count(caseId)。在提供的数据中,您的 person 变量中没有 accused。 table(interrogations$person) 提供 Auskunftsperson 和 Beschuldigter。

标签: r count dplyr plyr tidyverse


【解决方案1】:
interrogations %>% 
   filter(person == 'Auskunftsperson') %>% 
   count(caseId)

# A tibble: 1 x 2
  caseId     n
   <int> <int>
1      7     2


interrogations %>% 
   group_by(person) %>% 
   summarise(freq = n())

# A tibble: 2 x 2
  person           freq
  <chr>           <int>
1 Auskunftsperson     2
2 Beschuldigter       4

【讨论】:

  • 为我工作。我唯一能想到的是,您为问题采样的数据与您正在处理的数据集不同。也许仔细检查你的变量名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多