gpt4 book ai didi

r - 努力在 R 中创建数据透视表

转载 作者:行者123 更新时间:2023-12-01 22:58:12 24 4
gpt4 key购买 nike

我对任何类型的编码语言都非常陌生。我习惯于在 Excel 中对表进行数据透视,并尝试在 R 中复制我在 Excel 中完成的数据透视。我花了很长时间在互联网/YouTube 上搜索,但我就是无法让它工作。

我希望生成一个表格,其中左侧列显示多个位置,表格顶部显示已查看的不同页面。我想在表格中显示每个页面在每个位置的浏览量。

数据框“specificreports”显示了过去一年在线平台上不同页面的所有浏览量。我想过滤 10 月份的数据,然后根据不同页面的查看次数来调整不同的员工团队。

specificreports <- readxl::read_excel("Multi-Tab File - Dashboard 
Usage.xlsx", sheet = "Specific Reports")

specificreportsLocal <- tbl_df(specificreports)
specificreportsLocal %>% filter(Month == "October") %>%
group_by("Employee Team") %>%

这个位有效,因为它将不同的团队名称分组并过滤 10 月份的条目。在此之后,我尝试使用 summarize 函数来汇总点击次数,但根本无法正常工作。我不断收到有关数据类型的错误。我一直感到困惑,因为我查找的解决方案一直使用不同的包。

我将不胜感激任何帮助,使用最简单的方法来做到这一点,因为我是一个新手!

提前致谢,冬青

最佳答案

看看我能不能帮上点忙。从您提供给我们的信息很难知道您的数据是什么样的。所以我要猜测并制作一些假数据供我们玩。值得注意的是,字段名称中包含空格会让您的生活变得非常艰难。您应该首先将字段重命名为更易于管理的名称。由于我只是在编造数据,所以我将在不带空格的情况下提供我的字段名称:

library(tidyverse)
## this makes some fake data
## a data frame with 3 fields: month, team, value
n <- 100
specificreportsLocal <-
data.frame(
month = sample(1:12, size = n, replace = TRUE),
team = letters[1:5],
value = sample(1:100, size = n, replace = TRUE)
)

这只是一个名为 specificreportsLocal 的数据框,包含三个字段:monthteamvalue

让我们用它做一些事情:

# This will give us total values by team when month = 10
specificreportsLocal %>%
filter(month == 10) %>%
group_by(team) %>%
summarize(total_value = sum(value))
#> # A tibble: 4 x 2
#> team total_value
#> <fct> <int>
#> 1 a 119
#> 2 b 172
#> 3 c 67
#> 4 d 229

我认为这有点像您已经做过的,只是我添加了摘要来展示它是如何工作的。

现在让我们使用所有月份并将其从“长” reshape 为“宽”

# if I want to see all months I leave out the filter and 
# add a group_by month
specificreportsLocal %>%
group_by(team, month) %>%
summarize(total_value = sum(value)) %>%
head(5) # this just shows the first 5 values
#> # A tibble: 5 x 3
#> # Groups: team [1]
#> team month total_value
#> <fct> <int> <int>
#> 1 a 1 17
#> 2 a 2 46
#> 3 a 3 91
#> 4 a 4 69
#> 5 a 5 83

# to make this 'long' data 'wide', we can use the `spread` function
specificreportsLocal %>%
group_by(team, month) %>%
summarize(total_value = sum(value)) %>%
spread(team, total_value)
#> # A tibble: 12 x 6
#> month a b c d e
#> <int> <int> <int> <int> <int> <int>
#> 1 1 17 122 136 NA 167
#> 2 2 46 104 158 94 197
#> 3 3 91 NA NA NA 11
#> 4 4 69 120 159 76 98
#> 5 5 83 186 158 19 208
#> 6 6 103 NA 118 105 84
#> 7 7 NA NA 73 127 107
#> 8 8 NA 130 NA 166 99
#> 9 9 125 72 118 135 71
#> 10 10 119 172 67 229 NA
#> 11 11 107 81 NA 131 49
#> 12 12 174 87 39 NA 41
Created on 2018-12-01 by the reprex package (v0.2.1)

现在我不确定这是否是您想要的。因此,如果您需要澄清任何一个,请随时对此答案发表评论。

欢迎来到 Stack Overflow!

关于r - 努力在 R 中创建数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com