【问题标题】:How do I get R to show me the frequency of each variable in a character vector?如何让 R 向我显示字符向量中每个变量的频率?
【发布时间】:2017-09-08 15:01:10
【问题描述】:

我正在分析一个包含 181,000 多个用户操作的电子表格,并且想知道每个用户执行了多少操作。我希望 R 向我显示特定用户的名称出现了多少次,从高到低排列,这样我就可以专注于执行最多操作的用户(我们对执行十个操作的用户并不真正感兴趣,当我们最活跃的用户在过去一周执行了 101,554 次)。我创建了字符向量 new.variable.v 来选择电子表格的“screen_name”列,并且

table(table(new.variable.v))

显示计数,但不显示屏幕名称。我读过的所有其他解决方案似乎都旨在确定特定实例出现的次数,而我想知道每个不同的屏幕名称出现的次数。一个更擅长 R 的朋友提出了一些其他的建议,从我的控制台复制了他们的错误消息:

new.variable.sort[order(new.variable.sort[,2], decreasing=TRUE),]

[.default(new.variable.sort, , 2) 中的错误:错误的数量 尺寸

new.variable.order <- count(new.variable.v)

UseMethod("group_by_") 中的错误:没有适用的方法 'group_by_' 应用于“字符”类的对象

count(new.variable.v, x) %>%
    arrange(desc(n))

UseMethod("group_by_") 中的错误:没有适用的方法 'group_by_' 应用于“字符”类的对象

我已经在谷歌上搜索了这些错误并阅读了一些关于它们的其他 Stack Overflow 条目,但我无法产生成功的结果。

【问题讨论】:

  • 嗨,山姆!欢迎来到 SO。您能否提供一个可重现的示例(例如,只有少数示例行的数据框定义)?
  • 你的意思是这样吗?> table(new.variable.v) new.variable.v -MakesSense- 12AIM784 12blue 12for14 1423cd 2011Rainmakr 37Tomate37 400000 4200 314 12 1 1 5 756 3 2 11 427Cobra 47 54p095 a_go_c aatkadam AAUSA7 AbackCab AbackChum35 1 143 1 3 5 7 2 1 2 AbackDate24 AbackEar10 AbackEase28 AbackLink18 AbackNest98
  • > table(data$screen_name, sort=true) data$screen_name 中的错误:“闭包”类型的对象不是子集 > freq% count(screen_name, sort = TRUE) UseMethod("group_by_") 中的错误:“group_by_”没有适用的方法应用于“function”类的对象 没有“group_by_”的适用方法应用于“character”类的对象
  • 如果我们能够真正创建您遇到问题的数据,而不仅仅是查看您的输出是什么,这将是最有帮助的。例如,data.frame(new.variable.v = c("A", "B", "C")) .. 您可能会受益于阅读 stackoverflow.com/questions/5963269/…...
  • 好的,怎么样 (new.variable.v = c("EagerTape68", "EagerTape68", "jebinless3", "BoldOther94", "BoldOther94", "2011Rainmakr", "EagerTape68"))与该向量继续为 180K + 额外的条目?此示例的所需输出为 EagerTape68 = 3、BoldOther94 = 2、2011Rainmakr = 1、jebinless3 = 1。

标签: r vector character dplyr


【解决方案1】:

另一种 dplyr / tidyverse 风格的方法是首先使用 df &lt;- readxl::read_excel() 将电子表格读入数据框。然后,您可以通过以下方式找到 screen_name 的计数:

res <- df %>%
  group_by(screen_name) %>%
  summarise(volume = n()) %>%
  arrange(desc(volume))

我个人喜欢这种方法,因为我在 RStudio 工作,将结果输出为数据框让我可以轻松查看和使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2019-03-26
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多