楼主: Anniky
1611 14

[程序分享] R语言编程问题见附件 [推广有奖]

  • 4关注
  • 1粉丝

本科生

57%

还不是VIP/贵宾

-

威望
0
论坛币
119 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
647 点
帖子
70
精华
0
在线时间
78 小时
注册时间
2016-3-3
最后登录
2018-3-2

30论坛币
实习生小白请教,数据和问题都放在电子表格里,程序发邮箱646817474@qq.com

待学习R.xls

12.07 KB

数据文件

关键词:R语言编程 语言编程 R语言 电子表格 实习生

回帖推荐

cheetahfly 发表于7楼  查看完整内容

cheetahfly 发表于4楼  查看完整内容

沙发
cheetahfly 在职认证  发表于 2017-7-28 13:07:57 |只看作者 |坛友微信交流群
  1. library(tidyverse)
  2. library(stringr)
  3. dat <- read.csv("***.csv", header = TRUE, stringsAsFactors = FALSE)
  4. # 实践中,请自己编写一个人名和组名对应的dataframe
  5. # 比如names_teams
  6. # 该df只包含两列sales和team,一一对应,不要重复
  7. dat <- dat %>%
  8.   left_join(names_teams, by = "sales") %>%
  9.   mutate(dq = ifelse(str_detect(destination, pattern = "美国"), "美洲", "欧洲"))
  10. gr1 <- dat %>%
  11.   group_by(team, dq) %>%
  12.   summarise(sum_weight = sum(weight))
  13. gr2 <- dat %>%
  14.   group_by(team) %>%
  15.   summarise(sum_weight = sum(weight))
  16. td <- dat %>%
  17.   group_by(sales) %>%
  18.   summarise(sum_weight = sum(weight))
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Anniky + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
Anniky 发表于 2017-7-28 14:02:03 |只看作者 |坛友微信交流群
sales变量实际是人名,是没有规律的字符哦。

使用道具

板凳
Anniky 发表于 2017-7-28 14:02:08 |只看作者 |坛友微信交流群
sales变量实际是人名,是没有规律的字符哦。

使用道具

报纸
Anniky 发表于 2017-7-29 10:20:20 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-7-28 14:37
# 实践中,请自己编写一个人名和组名对应的dataframe
# 比如names_teams
# 该df只包含两列sales和team,一一对应,不要重复

这里我不太明白呢,team这个变量本身是没有的也是麻烦点所在,如果要自己创建一个人名和组名对应的dataframe,像这样?
dat$team[dat$sales=="A1"]=1
dat$team[dat$sales=="A2"]=1
dat$team[dat$sales=="A3"]=1
dat$team[dat$sales=="B1"]=2
dat$team[dat$sales=="B2"]=2
dat$team[dat$sales=="B3"]=2
dat$team[dat$sales=="B4"]=2
dat$team[dat$sales=="C1"]=3
dat$team[dat$sales=="C2"]=3
dat$team[dat$sales=="C3"]=3
dat$team[dat$sales=="D1"]=4
dat$team[dat$sales=="D2"]=4
dat$team[dat$sales=="D3"]=4
dat$team[dat$sales=="E1"]=5
dat$team[dat$sales=="E2"]=5
dat$team[dat$sales=="E3"]=5
dat$team[dat$sales=="F1"]=6
dat$team[dat$sales=="F2"]=6
dat$team[dat$sales=="F3"]=6
dat$team[dat$sales=="F4"]=6
dat$team=factor(dat$team)
names_teams=data.frame(sales=dat$sales,team=dat$team)
这是我精简过的数据:35条观测,6个team,每个team有3或4个sales。
试想一下如果有上万条的观测,20个team,每team有10个sales,按我的理解,创建自己创建一个人名和组名对应的dataframe就不现实了。

使用道具

地板
Anniky 发表于 2017-7-29 10:40:51 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-7-28 14:37
#之前的回复代码乱了
  1. dat$team[dat$sales=="A1"]=1
  2. dat$team[dat$sales=="A2"]=1
  3. dat$team[dat$sales=="A3"]=1
  4. dat$team[dat$sales=="B1"]=2
  5. dat$team[dat$sales=="B2"]=2
  6. dat$team[dat$sales=="B3"]=2
  7. dat$team[dat$sales=="B4"]=2
  8. dat$team[dat$sales=="C1"]=3
  9. dat$team[dat$sales=="C2"]=3
  10. dat$team[dat$sales=="C3"]=3
  11. dat$team[dat$sales=="D1"]=4
  12. dat$team[dat$sales=="D2"]=4
  13. dat$team[dat$sales=="D3"]=4
  14. dat$team[dat$sales=="E1"]=5
  15. dat$team[dat$sales=="E2"]=5
  16. dat$team[dat$sales=="E3"]=5
  17. dat$team[dat$sales=="F1"]=6
  18. dat$team[dat$sales=="F2"]=6
  19. dat$team[dat$sales=="F3"]=6
  20. dat$team[dat$sales=="F4"]=6
  21. dat$team=factor(dat$team)
  22. names_teams=data.frame(sales=dat$sales,team=dat$team)
复制代码

使用道具

7
cheetahfly 在职认证  发表于 2017-7-29 17:48:36 |只看作者 |坛友微信交流群
  1. names_teams <- data.frame(sales = c("张三", "李四", "王五", "宋江", "李逵", "林冲"), team  = c("酱油组", "酱油组", "酱油组", "好汉组", "好汉组", "好汉组"))
复制代码

使用道具

8
Anniky 发表于 2017-7-31 09:50:52 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-7-29 17:48
get!十分感谢~
最后柔柔地问一句,%>%这个符号从没见过也没查到,请问是什么意思呀?

使用道具

9
cheetahfly 在职认证  发表于 2017-7-31 13:39:15 |只看作者 |坛友微信交流群
%>% 是forward-pipe operator,可以减少中间变量的产生,使代码逻辑性更强,更易于维护。

使用道具

10
Anniky 发表于 2017-7-31 14:44:07 |只看作者 |坛友微信交流群
cheetahfly 发表于 2017-7-31 13:39
%>% 是forward-pipe operator,可以减少中间变量的产生,使代码逻辑性更强,更易于维护。
赶紧记笔记。
你好厉害啊!请问花了多长的时间才达到现在的水平?可以分享一下你的学习经验吗?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 14:28