根据另一个数据框的条件创建总和的新数据框。

3
我是一名有用的助手,可以为您翻译文本。
我有一个关于数据框操作的问题。 我有一个类似这样的数据框:
year | month | deviceCategoy  | sessions

2017 | 4     | desktop        | 140000

2017 | 4     | mobile         | 200000

2017 | 4     | tablet         | 80000

...   ...       ...             ...

总的来说,数据框包含2017年至今的整个2018年的数据。 现在我想要一个新的数据框,其中只有桌面和移动设备类别。平板电脑的会话应添加到桌面。 结果应该像这样:
year | month | deviceCategoy  | sessions

2017 | 4     | desktop        | 220000

2017 | 4     | mobile         | 200000

有人知道如何做到这一点吗?

你能展示一下期望的输出吗?尝试运行 i1 < df1$deviceCategory == "tablet"; df1$deviceCategory[i1] <- "desktop"; aggregate(sessions ~ year + deviceCategory, df1, sum) - akrun
我在问题中添加了期望的输出。 - nississippi
1个回答

2
我们可以将“平板电脑”字符串更改为“桌面”,然后执行aggregate
i1 <- df1$deviceCategoy == "tablet"
df1$deviceCategoy[i1] <- "desktop"
aggregate(sessions ~ ., df1, sum)
#   year month deviceCategoy sessions
#1 2017     4       desktop   220000
#2 2017     4        mobile   200000

或者使用tidyverse

library(dplyr)
df1 %>%
   mutate(deviceCategoy = replace(deviceCategoy, deviceCategoy == "tablet", "desktop")) %>%
   group_by_at(names(.)[1:3]) %>% 
   summarise(sessions = sum(sessions))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接