【问题标题】:Counting the frequency of multiple columns of a data frame [duplicate]计算数据框多列的频率[重复]
【发布时间】:2016-02-01 17:52:48
【问题描述】:

如果我有一个包含多列的数据框(我不知道确切的列数),但我知道名称有共同点 stock_ 而另一个是这样的数字

stock_1        stock_2  stock_3       stock_4
Google         NA       Yahoo         Google
Bing  Search   Yahoo    Bing Search   NA
Google         Yahoo    Yahoo         Bing Search

如何计算所有列的所有单词的频率并得出这样的结果:

name          frequency
Google           3
Bing Search      3
Yahoo            4

【问题讨论】:

  • unlist + table 应该这样做。

标签: r


【解决方案1】:

我们可以unlist 数据集并使用table

as.data.frame(table(unlist(df1)))
#         Var1 Freq
#1 Bing Search    3
#2      Google    3
#3       Yahoo    4

数据

df1 <- structure(list(stock_1 = c("Google", "Bing Search", "Google"), 
stock_2 = c(NA, "Yahoo", "Yahoo"), stock_3 = c("Yahoo", 
"Bing Search", 
"Yahoo"), stock_4 = c("Google", NA, "Bing Search")), 
.Names = c("stock_1", 
"stock_2", "stock_3", "stock_4"), class = "data.frame", 
 row.names = c(NA, -3L))

【讨论】:

  • 谢谢。此解决方案为 var1 数字 1,2 等提供,而不是单词的名称。从哪里可以看出我为什么会有这个的任何想法?
  • @Keri 我认为这些列是factor class。转换为character 就可以了。 df1[] &lt;- lapply(df1, as.character) 然后应用代码。
猜你喜欢
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 2022-11-28
  • 2021-10-07
相关资源
最近更新 更多