楼主: Darcy105
2763 3

[问答] 新手sapply问题 [推广有奖]

  • 0关注
  • 0粉丝

学前班

70%

还不是VIP/贵宾

-

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

楼主
Darcy105 发表于 2021-5-11 19:21:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

求教各位大神,为什么我用sapply做书上的相同操作不管有没有data.frame,sapply总是提示缺少object,

library(mass)
sapply ( UScrime [c( “U1”,“U2”)], function (X)(c(mean=mean(x), sd=sd(x))))

提示:Error in nlevels(object) : 缺少参数"object",也没有缺省值
Called from: levels(x)
收捲时出错: (29)种类目前没有在'eval'里实现

Error: no more error handlers available (recursive errors?); invoking 'abort' restart
收捲时出错: INTEGER() can only be applied to a 'integer', not a 'unknown type #29'
Error: no more error handlers available (recursive errors?); invoking 'abort' restart
二维码

扫码加我 拉你入群

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

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

关键词:apply appl App SAP Recursive

回帖推荐

owenqi 发表于2楼  查看完整内容

不知道你照着书上想做的是什么,你这个例子里面,求的是每列的均值和标准差。根据帮助文档,sapply的输入X里面要求的是是一个向量或列表,你这里输入的已经是n x 2的矩阵了,所以不符合要求吧。这种情况,你要么使用apply,要么把你的输入转成列表,

沙发
owenqi 在职认证  学生认证  发表于 2021-5-12 01:10:08
不知道你照着书上想做的是什么,你这个例子里面,求的是每列的均值和标准差。根据帮助文档,sapply的输入X里面要求的是是一个向量或列表,你这里输入的已经是n x 2的矩阵了,所以不符合要求吧。这种情况,你要么使用apply,要么把你的输入转成列表,
  1. # method 1
  2. apply(MASS::UScrime[,c('U1', 'U2')], MARGIN =  2, function(x) {c(mean(x), sd(x))})
  3. # method 2
  4. sapply(as.list(MASS::UScrime[,c('U1', 'U2')]), function(x) {c(mean(x), sd(x))})
复制代码

藤椅
zhou1_20 发表于 2021-5-12 09:20:41
要是UScrime 为数据框的话,用apply
UScrime [,c( “U1”,“U2”)] 少个逗号?

板凳
Darcy105 发表于 2021-5-14 09:01:17
owenqi 发表于 2021-5-12 01:10
不知道你照着书上想做的是什么,你这个例子里面,求的是每列的均值和标准差。根据帮助文档,sapply的输入X ...
实在谢谢,我也试过apply,结果没定义margin=2,已经好了,再次感谢大神

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 13:40