在r中对 Dataframe 中的数据进行分组和汇总

velaa5lx  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(151)

我在r中有一个 Dataframe ,其中的数据可能是"向上"或"向下",

df <- data.frame(Var1 = c("up", "down", "up", "down"),
                Var2 = c("down", "up", "down", "down"),
                Var3 = c("down", "down", "up", "up")
)
   df

我想要做的是使用use group_by将每列作为一个组,然后进行汇总以获得每列中的涨跌计数。
到目前为止我已经想到了这个,

newdf <- lapply(df[1:3], function(x){
     group_by(.[[x]])%>%
     summarize(n = n())
  })

newdf

但是不断得到错误。它似乎不识别""。

Error in group_by(.[[x]]) : object '.' not found

有人有什么建议吗?
我还使用了tidyverse软件包,我相信其中包含dyplyr

wswtfjt7

wswtfjt71#

这里有一种方法来创建一个表计数所有变量

library(dplyr)
library(tidyr)

df <- data.frame(Var1 = c("up", "down", "up", "down"),
                 Var2 = c("down", "up", "down", "down"),
                 Var3 = c("down", "down", "up", "up")
)

df %>% 
  pivot_longer(cols = everything()) %>% 
  count(name,value) %>% 
  pivot_wider(names_from = value,values_from = n,values_fill = 0)

相关问题