楼主: talentmsy
2485 11

[问答] 如果有条件的删除数据组 [推广有奖]

  • 0关注
  • 0粉丝

svip1

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
10201 个
通用积分
0.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
71 点
帖子
9
精华
0
在线时间
67 小时
注册时间
2013-3-2
最后登录
2025-11-14

楼主
talentmsy 发表于 2019-1-9 14:24:03 |AI写论文
100论坛币
示例如下:

对P分组,如果此时q<1,那么删除整个p=1的观测,按照这种规则,最后产生的结果只剩p=2和p=5的所有观测,请问如果实现该功能。示例非常简单,实际数据非常庞大,可能需要写循环。。求高手


最佳答案

cheetahfly 查看完整内容

这个不算复杂 library(tidyverse) myData %>% filter(Permno %in% (myData %>% group_by(Permno) %>% filter(abs(prc) == min(abs(prc)), abs(prc) > 1) %>% pull(Permno)))

沙发
cheetahfly 在职认证  发表于 2019-1-9 14:24:04
这个不算复杂
library(tidyverse)
myData %>%
  filter(Permno %in% (myData %>%
                                   group_by(Permno) %>%
                                   filter(abs(prc) == min(abs(prc)),
                                          abs(prc) > 1) %>%
                                   pull(Permno)))
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 + 3 + 3 + 3 热心帮助其他会员

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

藤椅
cheetahfly 在职认证  发表于 2019-1-9 21:49:21
没有看见示例

板凳
caimiao0714 学生认证  发表于 2019-1-10 06:24:25
题目表述非常不清楚,如果只需要留下p=2或者p=5的观测的话,可以用

dat[dat$p ==2 | dat$p ==5, ]

不知道你这里的q指的是什么。大量数据的话也不要写循环,R的循环非常慢,一般都可以用矢量化的句子来代替。
已有 2 人评分论坛币 热心指数 收起 理由
yahoocom + 5 + 1 热心帮助其他会员
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 15  热心指数 + 1   查看全部评分

报纸
talentmsy 发表于 2019-1-10 08:50:49
现在重新解释一下,Permno是股票代码,abs(prc)是每月的closing price, 举例,对于permno=10000的股票而言,只要有一个月份的c'losing price小于1,那么就删除Permno=10000的所有月份的观测。以此类推 sh.PNG

地板
talentmsy 发表于 2019-1-10 08:51:31
caimiao0714 发表于 2019-1-10 06:24
题目表述非常不清楚,如果只需要留下p=2或者p=5的观测的话,可以用

dat[dat$p ==2 | dat$p ==5, ]
你好,我又重新解释了下

7
talentmsy 发表于 2019-1-10 08:59:32
cheetahfly 发表于 2019-1-9 21:49
没有看见示例
你好,我重新解释了下

8
talentmsy 发表于 2019-1-10 09:39:05
cheetahfly 发表于 2019-1-10 09:24
这个不算复杂
library(tidyverse)
myData %>%
感谢帮助,我试了下code,tidyverse是可以安装,但是library会报错怎么办

9
caimiao0714 学生认证  发表于 2019-1-10 13:49:55
talentmsy 发表于 2019-1-10 09:39
感谢帮助,我试了下code,tidyverse是可以安装,但是library会报错怎么办
报的什么错呀?

10
talentmsy 发表于 2019-1-11 12:07:31
caimiao0714 发表于 2019-1-10 13:49
报的什么错呀?
报错了下面这个
> library(tidyverse)
Error: package or namespace load failed for ‘tidyverse’:
.onAttach failed in attachNamespace() for 'tidyverse', details:
  call: loadNamespace(name)
  error: there is no package called ‘rstudioapi’

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-7 20:57