楼主: 阿璇tian
2922 10

[问答] R语言长数据转款数据 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

89%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
2.8713
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1959 点
帖子
121
精华
0
在线时间
195 小时
注册时间
2017-12-21
最后登录
2023-3-27

楼主
阿璇tian 发表于 2018-10-26 10:58:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
老师们好,我的数据格式是这样的,

1.png


想要根据常委+省负责人+拉排期省份、week这几个变量,把预报排期和实际排期转换为宽数据。
我现在把预报数据转为宽数据没问题,
  1. com_wide<-dcast(com,常委+省负责人+拉排期省份~week,value.var = "预报排期")
复制代码



但是把预报排期和实际排期一起转为宽数据,报错,语句这么写的:
  1. com_wide<-dcast(com,常委+省负责人+拉排期省份~week,value.var = c("预报排期","实际排期"))
复制代码
哪里不对呢?
报的错是:
Error in .subset2(x, i, exact = exact) : subscript out of bounds
In addition: Warning message:
In if (!(value.var %in% names(data))) { :
  the condition has length > 1 and only the first element will be used


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据格式 负责人

沙发
阿璇tian 发表于 2018-10-26 11:03:47
哪位老师知道,能帮忙看一下吗??

藤椅
铁锷未残 学生认证  发表于 2018-10-26 12:11:52
请提供测试数据,csv或excel格式存储的数据。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
Whig 在职认证  发表于 2018-10-26 12:18:01
value.var应该只能是一个变量吧,因为它指定取值。你设置两个以上变量,它该取哪一个?
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

报纸
阿璇tian 发表于 2018-10-26 13:41:03
Whig 发表于 2018-10-26 12:18
value.var应该只能是一个变量吧,因为它指定取值。你设置两个以上变量,它该取哪一个?
不能分别指定吗,我这两个变量都需要变换,一起变换不可以吗?
分别变换再合在一起好麻烦

地板
Whig 在职认证  发表于 2018-10-26 13:49:21
阿璇tian 发表于 2018-10-26 13:41
不能分别指定吗,我这两个变量都需要变换,一起变换不可以吗?
分别变换再合在一起好麻烦
你可以想一下,感觉你这种想法不太对。先回答一个问题,你的每一行表示预报排期还是实际排期呢?如果既有预报又有实际,那周一下面的值又该如何指定是预报还是实际呢?

7
阿璇tian 发表于 2018-10-26 14:01:12
Whig 发表于 2018-10-26 13:49
你可以想一下,感觉你这种想法不太对。先回答一个问题,你的每一行表示预报排期还是实际排期呢?如果既有 ...
通过变量名显示,比如周一的,就生成两个字段,分别是周一.实际排期、周一.预报排期

8
阿璇tian 发表于 2018-10-26 14:01:16
Whig 发表于 2018-10-26 13:49
你可以想一下,感觉你这种想法不太对。先回答一个问题,你的每一行表示预报排期还是实际排期呢?如果既有 ...
通过变量名显示,比如周一的,就生成两个字段,分别是周一.实际排期、周一.预报排期

9
Whig 在职认证  发表于 2018-10-26 14:18:21
阿璇tian 发表于 2018-10-26 14:01
通过变量名显示,比如周一的,就生成两个字段,分别是周一.实际排期、周一.预报排期
一两句话说不明白,你需要先把预报排期和实际排期melt,比如定义成一个新变量“排期”,分别取值预报排期、实际排期这两类,新变量“排期值”,其取值就是具体对应的排期值;然后dcast,公式右边是week+排期,value.var=排期值。
PS:尽量不要用中文变量名

10
阿璇tian 发表于 2018-10-26 15:31:11
Whig 发表于 2018-10-26 14:18
一两句话说不明白,你需要先把预报排期和实际排期melt,比如定义成一个新变量“排期”,分别取值预报排期 ...
非常感谢,按照您的方法搞定了。
我这个表很多,字段也多,都是中文,,清理完还要导出给业务部门看,改来改去字段名很麻烦。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 05:04