楼主: duanwuhuan
5227 17

[问答] R软件中的数据分析问题 [推广有奖]

  • 4关注
  • 2粉丝

已卖:2份资源

博士生

9%

还不是VIP/贵宾

-

威望
0
论坛币
585 个
通用积分
0.0600
学术水平
2 点
热心指数
3 点
信用等级
0 点
经验
673 点
帖子
210
精华
0
在线时间
212 小时
注册时间
2008-10-10
最后登录
2016-4-16

楼主
duanwuhuan 发表于 2011-12-29 14:43:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

大家帮小弟一个忙吧,小弟快疯了。
比如现有如下数据:
600139    2009-01-01     2.1
600139    2009-01-02     2.3
600139    2009-01-03     2.2
    .                   .                .
    .                   .                .
600456   2009-01-02      12
600456   2009-01-03      13.1
    .                 .                  .
    .                .                  .

我现在想在R软件中,第一列为股票代码,我现在想提取股票数据个数大于700个的股票(比如包含600139的行有600行,则丢弃这只股票),然后再在这些股票中选出共同部分(也就是不同股票第二列的时间完全相同),怎么办啊,大家救命啊。


二维码

扫码加我 拉你入群

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

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

关键词:分析问题 数据分析 r软件 股票代码 股票数据 软件 数据分析专题 数据处理 数据分析软件 数据分析报告 面板数据分析 excel数据分析 数据分析方法 项目数据分析

沙发
大公子 发表于 2011-12-29 15:41:38
x <- read.table("tmp.txt")#数据放在tmp.txt里
y <- table(x[,1])
z <- x[x[,1] %in% names(y[y>700]),]#z是第一步要的
a <- unique(z[,2])
b <- lapply(a,function(a) z[which(z[,2]==a),])#b是第二步要的
已有 3 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
耕耘使者 + 1 + 1 热心帮助其他会员
qoiqpwqr + 20 + 1 热心帮助其他会员
duanwuhuan + 1 + 1 + 1 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 3  信用等级 + 1   查看全部评分

藤椅
duanwuhuan 发表于 2011-12-29 16:30:42
大公子 发表于 2011-12-29 15:41
x
大哥,高人啊,受教了。

板凳
duanwuhuan 发表于 2011-12-29 21:33:45
大公子 发表于 2011-12-29 15:41
x
还是没解决啊,第一步解决了,第二步好像不对吧。

报纸
qoiqpwqr 发表于 2011-12-29 23:09:33
duanwuhuan 发表于 2011-12-29 21:33
还是没解决啊,第一步解决了,第二步好像不对吧。
什么叫再在这些股票中选出共同部分?

地板
duanwuhuan 发表于 2011-12-29 23:36:47
qoiqpwqr 发表于 2011-12-29 23:09
什么叫再在这些股票中选出共同部分?
600139    2009-01-01     2.1
600139    2009-01-02     2.3
600139    2009-01-03     2.2
    .                   .                .
    .                   .                .
600456   2009-01-02      12
600456   2009-01-03      13.1
  .                   .                .
   .                   .                .
600457   2009-01-03       15
600456   2009-01-05      13.1
也就是选出那些交易日,各支股票都有交易,并存放到另外一张表中。比如上面的红色部分就是要提出来的数据。换句话说,假如现在有30支股票,有30个交易日的数据,中间有的股票也许没交易,假如原始表格有800个数据,明显每支股票的数据不一样多。经过提取数据后,假设有a个数据,则a肯定能被30整除的。不知道我表达清楚没?谢谢啦

7
大公子 发表于 2011-12-30 09:40:10
我这儿是行的。错误信息贴出来。

8
xiaobing212 发表于 2011-12-30 10:13:26
duanwuhuan 发表于 2011-12-29 23:36
600139    2009-01-01     2.1
600139    2009-01-02     2.3
600139    2009-01-03     2.2
  1. z[which(table(z[,2])==max(table(z[,2]))),]
复制代码
第二步是不是这个意思?

9
xiaobing212 发表于 2011-12-30 10:21:45
duanwuhuan 发表于 2011-12-29 23:36
600139    2009-01-01     2.1
600139    2009-01-02     2.3
600139    2009-01-03     2.2
z[which(table(z[,2])==max(table(z[,2]))),]
第二问是这个意思么

10
duanwuhuan 发表于 2011-12-30 12:54:46
xiaobing212 发表于 2011-12-30 10:21
z[which(table(z[,2])==max(table(z[,2]))),]
第二问是这个意思么
不是,运行结果不对啊。我是求各支股票都有交易的那些时间的对应数据。也就是:如果股票1,从1月1日到1月20日,股票2,从1月3日到1月23日,则输出的数据应该是:股票1中的1月3日到1月20日(与2的时间相同),股票2中1月3日到1月20日中的交易数据。

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

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