全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2162 6
2016-03-19
复制代码
现在想用apply函数实现,但是下面的代码提示错误
复制代码
谢谢各位指教!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-3-19 23:02:48
首先,一个是myfunc,一个是myfun,肯定会出问题。

其次,myfun函数里,操作对象是matrix,而apply函数是以matrix里的一列或者一行为对象,将myfun作用于matrix的函数,放到apply里,肯定出错。显示
复制代码

所以,你需要考虑用别的方法来实现你的目的。而你的目的从给定的信息判断,并不明显,所以请多加思考些。
二维码

扫码加我 拉你入群

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

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

2016-3-20 08:21:07
jiangbeilu 发表于 2016-3-19 23:02
首先,一个是myfunc,一个是myfun,肯定会出问题。

其次,myfun函数里,操作对象是matrix,而apply函数是 ...
@jiangbeilu,谢谢您
那个函数写错了,不好意思!
比如现在有一个矩阵,我想实现的是矩阵的每两列比值,如我例子中的,
复制代码
上面就是第2列和第1列的比值,但是我不想用循环去实现,想用apply函数或者此类函数
请教有可以简单实现的吗?
二维码

扫码加我 拉你入群

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

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

2016-3-20 09:52:22
建议你理解一下apply函数的用法,及与循环的关系。
apply能替代循环,可以理解成:
在执行的时候,apply将矩阵的很多列或者行,作为一个单独的对象,参与到计算中,然后最后每一行或者每一列的操作结果,返回一个对应的内容。
并不参完成你所说的问题,你的问题是两层循环。
矩阵方面的相关函数我不太熟悉,不过你可以用组合函数,也就是从n列中,每次选择2列,这样的排列或者组合结果,然后再代入矩阵进行行列计算即可。
二维码

扫码加我 拉你入群

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

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

2016-3-20 11:33:30
jiangbeilu 发表于 2016-3-20 09:52
建议你理解一下apply函数的用法,及与循环的关系。
apply能替代循环,可以理解成:
在执行的时候,apply将 ...
嗯,明白,您的建议也是一种选择方案,很好!
谢谢,最近正在学习apply函数,就想到这样一个问题。

二维码

扫码加我 拉你入群

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

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

2016-3-20 18:16:39
如果你只想求出该矩阵中后一列和前一列的比,直接可以用

m1[, -1]/m1[, -ncol(m1)]
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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