楼主: 治感冒
1174 6

[问答] 请问这类函数怎么写?目前均报错 [推广有奖]

  • 1关注
  • 1粉丝

博士生

82%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0036
学术水平
2 点
热心指数
2 点
信用等级
1 点
经验
341 点
帖子
178
精华
0
在线时间
452 小时
注册时间
2007-3-9
最后登录
2020-1-8

楼主
治感冒 发表于 2016-9-26 17:48:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
基于dplyr包,我写了个函数,做分类统计。如下所示
  1. library(dplyr)
  2. CatergoryStat <- function(data, catergory, args){
  3.     output <- data %>%
  4.         group_by(catergory) %>%
  5.         summarise(obs = n(), mean = mean(args))
  6. }

  7. test <- CatergoryStat(data = source, catergory = "mkt",  args = "pe")
复制代码
但是跑出来的结果是,Error: unknown column catergory'

我觉得可能是dplyr的函数group_by对参数的调用格式问题。请问这个怎么改呢?
二维码

扫码加我 拉你入群

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

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

关键词:Library dplyr Summa BRARY arise library 统计

沙发
johnmy 发表于 2016-9-26 18:58:18
dplyr和ggplot的编程好像涉及到Non-standard evaluation https://cran.r-project.org/web/packages/lazyeval/vignettes/lazyeval.html,是不是需要用到lazyeval包。
或是改为group_by_试试。也需要这方面的指导,等待高手

藤椅
jgchen1966 发表于 2016-9-26 19:21:11
catergory变量也要放在data.frame格式的data中,禁止单列。。

板凳
jgchen1966 发表于 2016-9-26 19:29:00
library(dplyr)
CatergoryStat <- function(data, catergory, args){    if ( is.data.frame(data)) stop(" "data" is not "data.frame" ")  ##data 须是data.frame
     data$catergory<-catergory   ###将catergory 加入data
     data$args<-args    ####将args 加入data
    output <- data %>%
        group_by(catergory) %>%
        summarise(obs = n(), mean_args = mean(args))  ###mean 不是好变量
}
####data、 catergory ,args ,mean 均不是好变量,因R 中均有这些具特定含义的函数名
test <- CatergoryStat(data = source, catergory = "mkt",  args = "pe")
鹑居鷇食,鸟行无彰

报纸
jgchen1966 发表于 2016-9-26 19:31:26
library(dplyr)
CatergoryStat <- function(data, catergory, args){  
  if (! is.data.frame(data)) stop(" "data" is not "data.frame" ")  ##data 须是data.frame 。。#上楼缺了 "!"...
     datacatergory<-catergory   ###将catergory 加入data  
     datacatergory<-catergory   ###将catergory 加入data       dataargs<-args    ####将args 加入data
    output <- data %>%
        group_by(catergory) %>%
        summarise(obs = n(), mean_args = mean(args))  ###mean 不是好变量
}
####data、 catergory ,args ,mean 均不是好变量,因R 中均有这些具特定含义的函数名
test <- CatergoryStat(data = source, catergory = "mkt",  args = "pe")
鹑居鷇食,鸟行无彰

地板
jgchen1966 发表于 2016-9-26 19:36:28
jgchen1966 发表于 2016-9-26 19:31
library(dplyr)
CatergoryStat
这是不得已将就的“笨拙”的写法。。

7
jgchen1966 发表于 2016-9-26 19:46:49
jgchen1966 发表于 2016-9-26 19:36
这是不得已将就的“笨拙”的写法。。
library(dplyr)   ###上楼不知为何,出乱码子
CatergoryStat <- function(data, catergory, args){   ###为了正确说明,才加if 。下面同理
  if (! is.data.frame(data)) stop(" data 不是 data.frame 格式,无法运行 ")  ##data 须是data.frame 。。
     if (length(catergory)==NROW(data) data$catergory<-catergory  else stop("无法加入") ###将catergory 加入data  。
###为了正确说明,才加if 。下面同理
     if (length(args)==NROW(data) )  data$args<-args   else stop("无法加入") ####将args 加入data
    output <- data %>%
        group_by(catergory) %>%
        summarise(obs = n(), mean_args = mean(args))  ###mean 不是好变量
}
####data、 catergory ,args ,mean 均不是好变量,因R 中均有这些具特定含义的函数名

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

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