楼主: jiajiaqiqigugu
1766 5

[问答] r语言函数计算 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1283 点
帖子
113
精华
0
在线时间
92 小时
注册时间
2016-6-10
最后登录
2017-4-9

楼主
jiajiaqiqigugu 发表于 2016-12-6 12:19:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
> myfun<-function(x2,x4,x6,x7,x8,x9,x11,x12){m1=0.1330817307*x2+0.2378699151*x4+0.1330817307*x6+0.3494410668*x7+0.4795059670*x8-0.5686993302*x9-0.2906450889*x11-3.3149510245*x12+5.7936976484}
> o
   x2   x4  x6   x7   x8   x9  x11  x12
1 6.3 4.67 6.3 2.56 1.75 4.60 2.75 0.80
2 2.2 2.43 2.2 2.00 1.70 4.84 4.32 0.95
3 2.7 3.16 2.7 2.30 1.80 4.90 3.81 0.93
4 6.4 4.62 6.4 3.35 1.61 4.63 2.80 0.80

> myfun(o)
Error in myfun(o) : 缺少参数"x4",也没有缺省值

请问如何计算函数值呀,问题出在哪了?

二维码

扫码加我 拉你入群

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

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

关键词:R语言 Error Fun 缺省值 X12 Error 如何

沙发
houyunhuang 发表于 2016-12-6 13:28:36
建议你把函数改一下,参数变为数据框,然后通过数据框取子集赋值计算

藤椅
jiajiaqiqigugu 发表于 2016-12-6 15:46:14
houyunhuang 发表于 2016-12-6 13:28
建议你把函数改一下,参数变为数据框,然后通过数据框取子集赋值计算
不懂哎

板凳
houyunhuang 发表于 2016-12-6 19:11:24
jiajiaqiqigugu 发表于 2016-12-6 15:46
不懂哎
  1. myfun <- function(df){
  2.   beta <- as.matrix(c(0.1330817307,0.2378699151,0.1330817307,
  3.             0.3494410668,0.4795059670,0.5686993302,
  4.             0.2906450889,3.3149510245),nrow = 8)
  5.   df_m <- as.matrix(df)
  6.   m1 <- df_m %*% beta + 5.7936976484
  7.   return(m1)
  8. }

  9. m <- as.data.frame(matrix(rnorm(32)*10,nrow = 4))

  10. myfun(m)
复制代码

报纸
houyunhuang 发表于 2016-12-6 19:12:07
houyunhuang 发表于 2016-12-6 19:11
我就写了一下,也不简洁,你试试看对不对

地板
johnmy 发表于 2016-12-6 20:35:46
问题是函数的参数调用问题,赋值是是为o给了x2,所以才出现错误。就像楼上说的应该用数据框作为参数。

myfun<-function(df)

{m1<-0.1330817307*df[,1]+0.2378699151*df[,2]+......+5.7936976484
return(m1)}

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

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