全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2216 6
2015-02-13
程序如下vars <- c("mpg", "hp", "wt")
mtcars[vars]
dstats <- function(x)(c(mean=mean(x), sd=sd(x)))
by(mtcars[vars], mtcars$am, dstats)

请高手指点出错的原因,谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2015-2-14 16:38:59
1. by 函数 为 dstats提供的是两个data.frame, 可以尝试运行一下就知道问题 :

by(mtcars[, vars], mtcars$$(去掉其中一个$)am, function(x)(class(x)))

2. 一个丑一点的解决方法:

dstats <- function(x)(c(mean=mean(x), sd=sd(x)))

by(mtcars[, vars], mtcars$am, function(x){apply(x, 2, dstats)})
二维码

扫码加我 拉你入群

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

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

2015-2-14 20:20:43
feng026 发表于 2015-2-14 16:38
1. by 函数 为 dstats提供的是两个data.frame, 可以尝试运行一下就知道问题 :

by(mtcars[, vars], mt ...
谢谢您的指点!但关于错误原因我还是不能理解,但您的另一种方法却给我启示,要学会自己创造,真的谢谢您的回复!
二维码

扫码加我 拉你入群

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

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

2015-2-14 22:38:24
你可以单步调试一下你写的函数,对于大于2列的情况,已经出错,你需要加强那个函数。
比如运行调试 dstats(mtcars[,vars]),看下图
附件列表
Untitled.png

原图尺寸 212.02 KB

Untitled.png

二维码

扫码加我 拉你入群

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

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

2015-2-15 14:17:33
liu7788414 发表于 2015-2-14 22:38
你可以单步调试一下你写的函数,对于大于2列的情况,已经出错,你需要加强那个函数。
比如运行调试 dstats ...
谢谢您的回复,但我没有看懂你这个图,似乎不是R软件吧,有点想LATEX,?????
二维码

扫码加我 拉你入群

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

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

2015-2-15 18:00:07
RStudio,安装R语言后,再安装这个开发环境。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群