楼主: 叶子婧
1765 13

[问答] 求问怎样用R语言将如下数据形式改变为需要的数据形式 [推广有奖]

  • 0关注
  • 0粉丝

高中生

40%

还不是VIP/贵宾

-

威望
0
论坛币
100 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
174 点
帖子
24
精华
0
在线时间
19 小时
注册时间
2016-8-1
最后登录
2017-8-27

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
原始数据是这样:
站点  年 月日 值
52986 1951 1 1 31023
52986 1951 1 2 0
52986 1951 1 3 0
52986 1951 1 4 0
52986 1951 1 5 0
52996 1951 1 1 31001
52996 1951 1 2 0
52996 1951 1 3 0
52996 1951 1 4 0
52996 1951 1 5 0


转换为:年 月 日    52986   52996
             1951 1 1     31023  31001
             1951 1 2     0            0
             1951 1 3     0            0
             1951 1 4     0            0
             1951 1 5     0            0








二维码

扫码加我 拉你入群

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

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

关键词:数据形式 R语言 原始数据

沙发
zhou1_20 发表于 2016-8-2 13:59:23 |只看作者 |坛友微信交流群
是这样吗?
  1. data = read.table(file.choose(),stringsAsFactors = FALSE,sep=' ',header = FALSE)
  2. dat = data[-1,]
  3. names(dat) = c(as.character(data[1,]))

  4. library(reshape2)
  5. dcast(dat,年+月+日~站点,value.var = '值')
复制代码
捕获.PNG

使用道具

藤椅
叶子婧 发表于 2016-8-2 14:14:33 |只看作者 |坛友微信交流群
zhou1_20 发表于 2016-8-2 13:59
是这样吗?
恩恩,结果就这这样的,我想问您一下,我安装reshape2的时候安装不上,reshape可以安装,可是这个reshape是不是不能运行您这个程序?

使用道具

板凳
zhou1_20 发表于 2016-8-2 14:25:55 |只看作者 |坛友微信交流群
叶子婧 发表于 2016-8-2 14:14
恩恩,结果就这这样的,我想问您一下,我安装reshape2的时候安装不上,reshape可以安装,可是这个reshape ...
把你的R升级一下

使用道具

报纸
叶子婧 发表于 2016-8-2 14:52:48 |只看作者 |坛友微信交流群
zhou1_20 发表于 2016-8-2 14:25
把你的R升级一下
恩恩,装成功了,可是在运行的时候出现这样的错误提示: 无标题.png
在我的文档中这一列是存在的呀:
无标题12.png

使用道具

地板
zhou1_20 发表于 2016-8-2 15:18:28 |只看作者 |坛友微信交流群
叶子婧 发表于 2016-8-2 14:52
恩恩,装成功了,可是在运行的时候出现这样的错误提示:
在我的文档中这一列是存在的呀:
把 value 的单引号去掉试试

使用道具

7
叶子婧 发表于 2016-8-2 15:22:27 |只看作者 |坛友微信交流群
zhou1_20 发表于 2016-8-2 15:18
把 value 的单引号去掉试试
去掉了以后还是不可以,对了,dcast括号里头的为什么是dat而不是data?

使用道具

8
叶子婧 发表于 2016-8-2 15:42:22 |只看作者 |坛友微信交流群
station year mon day value
列名就是这样的
因为我发不了消息,所以只能这样艾特你

使用道具

9
叶子婧 发表于 2016-8-2 15:47:17 |只看作者 |坛友微信交流群
zhou1_20 发表于 2016-8-2 15:18
把 value 的单引号去掉试试
station year mon day value
列名就是这样的
因为我发不了消息,所以只能这样回复你

使用道具

10
zhou1_20 发表于 2016-8-2 16:08:38 |只看作者 |坛友微信交流群
  1. data = data.frame(station=rep(c(52986,52996),c(5,5)),
  2.                         year = rep('1951',10),
  3.                         mon = rep(1,10),
  4.                         day = rep(1:5,2),
  5.                         value =c(31023,rep(0,4),31001,rep(0,4)))
  6. library(reshape2)
  7. dcast(data,year+mon+day~station,value.var = 'value')
复制代码

使用道具

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

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

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

GMT+8, 2024-5-21 15:34