将数据框列转换为R

时间:2015-08-26 15:52:59

标签: r count frequency

我最近开始研究R中的一些统计问题,我有一个查询。我通常在python中编码并找到" collections.Counter"功能非常有用。但是我没有在R中找到任何这样的等效命令,这是令人惊讶的,因为频率在统计中被大量使用。

例如我有这个表(数据框) -

df ->

c1          c2
reading1    2
reading2    3
reading3    1
reading4    3
reading5    2
reading6    4
reading7    1
reading8    2
reading9    4
reading10   5 

我希望在R-

中得到这个
value    frequency
    1    2
    2    3
    3    2
    4    2
    5    1

我希望这能说明我想做什么。 任何帮助表示赞赏

用于说明目的 - 在python中我可以这样做 -

df_c2 = [2,3,1,3,2,4,1,2,4,5]
counter=collections.Counter(df$c2)
print (counter)

and get this - Counter({2: 3, 1: 2, 3: 2, 4: 2, 5: 1})
which I can manipulate using loops.

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用table(),它返回一个名为vector()的内容:

> table(df$c2)

1 2 3 4 5 
2 3 2 2 1 

您可以像这样返回data.frame

> data.frame(table(df$c2))
  Var1 Freq
1    1    2
2    2    3
3    3    2
4    4    2
5    5    1

当然,您也可以使用" tidyverse"等软件包。

library(tidyverse)
df %>% 
  select(c2) %>% 
  group_by(c2) %>% 
  summarise(freq = n())
# # A tibble: 5 x 2
#      c2  freq
#   <int> <int>
# 1     1     2
# 2     2     3
# 3     3     2
# 4     4     2
# 5     5     1