楼主: dingziqi
7211 5

[问答] dplyr中group_by处理玩summarise的n()报错 [推广有奖]

  • 0关注
  • 0粉丝

大专生

93%

还不是VIP/贵宾

-

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

楼主
dingziqi 发表于 2019-3-29 21:44:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
dplyr中group_by处理玩summarise的n()报错在gp1gp2生成的位置
Error: n() should only be called in a data context
Call `rlang::last_error()` to see a backtrace
  1. library(dplyr)
  2. library(plyr)
  3. load("D:/R整理数据/newzonghe.RData")
  4. newzonghe<-data.frame(zonghe$groupRebalancingStockSymbol,zonghe$chigubianhua,zonghe$newdatatime)
  5. newzonghe<-newzonghe[which(newzonghe$zonghe.chigubianhua!=0),]
  6. bijiao<-newzonghe
  7. colnames(bijiao)=c("Stockid","bili","dttime")
  8. ds<-tbl_df(bijiao)
  9. newds<-filter(ds,abs(bili)>=10)
  10. newds<- newds %>% mutate(postitive=ifelse(bili>0,1,0))
  11. gp1<- newds%>% group_by(Stockid) %>% summarise(countt=n())
  12. gp2<-newds %>% group_by(Stockid,dttime,postitive) %>% summarise(count=n())
  13. df1<-gp1 %>% as.data.frame()
  14. df2<-gp2 %>% as.data.frame()
  15. save(df1,file = "D:\\df1")
  16. save(df2,file = "D:\\df2")
复制代码
Stockid bili dttime
SH60131815.09 2014-11-04
SH601318 50 2014-11-04
SH601318 10 2014-11-06
SH601318 10 2014-11-10
SH601318 23 2014-11-11
SH601318 21 2014-11-12
SH601318 -50 2014-11-13
SH601318 21 2014-11-13
SH601318 21 2014-11-13
SH601318 20 2014-11-13
SH601318 20 2014-11-14
SH601318 21 2014-11-17z



二维码

扫码加我 拉你入群

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

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

关键词:Summa arise Group dplyr aris

沙发
cheetahfly 在职认证  发表于 2019-3-29 22:46:08
用你的数据和代码运行无问题,你要找到一个可以重复你遇到的错误的最少数据包。

藤椅
nieqiang110 学生认证  发表于 2019-3-30 07:15:21
代码太乱,不简练。试试as_tibble(data)

板凳
xinlulua 发表于 2019-6-28 08:59:18
请问你的问题解决了吗,我也遇到了同样的问题,求赐教

报纸
ccs0531 发表于 2019-6-30 15:58:24
我要遇到了这个问题,已经解决了。
可能是因为你之前处理某列数据时,提示了一些警告,例如,        Warning message:
In if (act_slt$session > 45 * 60) act_slt$session <- 45 * 60 : the condition has length > 1 and only the first element will be used(该条件的长度为> 1,并且只使用第一个元素),似乎告诉我们数据有错行、错列问题。
这时候你再用n()就会提示错误:Error: n() should only be called in a data context。

因此,解决的方法是回头检查下警告信息。

但是,有时候library(dplyr),调用summarise,n()是没有问题的。

地板
xxue0530 发表于 2024-1-6 19:33:23
同样遇到这个问题。昨天能跑的代码,今天傍晚会报楼上说到的这个错误。没改动过的。

重启一下电脑,重新跑,即可。没报错了。MacPro。原因不清楚。but it works.

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

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