【问题标题】:Error: `name` must be a single string. Using Count() function错误:`name` 必须是单个字符串。使用 Count() 函数
【发布时间】:2021-05-28 20:29:58
【问题描述】:

我正在尝试从 Kaggle 脚本运行这行代码:

df1 <- combined %>%
count(name = character, drilldown = character) %>% 
arrange(desc(n)) %>% 
head(9) %>% 
rename(y = n)

但是,当我运行此代码时,我收到以下错误消息:

Error: `name` must be a single string.

“组合”是一个包含 2 个变量(字符和对话,都是“字符”变量)的数据框。

ep4 <- data.frame(character  = c("Luke", "Leia"),
                  dialogue = c("Hello", "world")
                  )
                  
ep5 <- data.frame (character  = c("Darth vader", "Sidious"),
                   dialogue = c("My", "name")
                   )

ep6 <- data.frame (character  = c("R2D2", "ObiWan"),
                   dialogue = c("is", "Essan")
                   )
combined <- bind_rows(ep4, ep5, ep6)

str(combined):
'data.frame':   6 obs. of  2 variables:
 $ character: chr  "Luke" "Leia" "Darth vader" "Sidious" ...
 $ dialogue : chr  "Hello" "world" "My" "name" ...

我不确定我在这里做错了什么。我正在使用dpylr 包中的count() 函数,而不是plyr。计数函数的“名称”参数存在问题。如果我删除“名称”参数,代码会运行,但稍后创建的饼图(使用 df1 作为其数据)不包含每个切片的字符名称。

这是 Kaggle 脚本:https://www.kaggle.com/couyang/star-wars-interac-drilldown-sentiment-analysis/execution

【问题讨论】:

  • 你好,你能看看合并后的数据是什么样子的吗?
  • 欢迎来到 SO,EssanRago!请不要让我们猜测combined 的样子,要么使用公共数据库,要么提供明确的、易于使用的数据,最好使用data.frame(.) 以编程方式生成,或者粘贴dput(x) 的输出(其中x是数据的一个小的代表性样本,足以显示它的可变性)。请参阅stackoverflow.com/q/5963269minimal reproducible examplestackoverflow.com/tags/r/info。谢谢!

标签: r dplyr count


【解决方案1】:

以下可能是你想要的

df1 <- combined %>%
count(drilldown = character) %>% 
arrange(desc(n)) %>% 
head(9) %>% 
rename(y = n)

您得到的错误是它期望将一个字符分配给name 参数。如果您要这样做,您需要按如下方式调整您的管道:

df1 <- combined %>%
count(drilldown = character, name = "counts") %>% 
arrange(desc(counts)) %>% 
head(9) %>% 
rename(y = counts)

【讨论】:

    猜你喜欢
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 2012-01-31
    相关资源
    最近更新 更多