全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2153 4
2019-05-29
求教大神们:

我想对一个data.frame的每一行数 进入如下计算 该行前五个数  每个数乘以0.06 后十个数每个数乘以0.07  然后将这两个值相加 得到一个新的数  因为对行进行重复计算 我就运了apply() 函数

但是我的代码出现了错误

我写的是:
SeansonNet <- apply(SeasonBack[,2:ncol(SeasonBack)],1,function(x) 0.06*sum(SeasonBack[x,(2):(6)])+0.07*sum(SeasonBack[x,(7):(16)]))  
报错为:
Error in xj[i] : only 0's may be mixed with negative subscripts

请问要怎么改呢?我查到出这个问题大多数因为没有对类似i-1的写法加上括号 但是我没有这样的表达呀 有2:6 我都加上了括号 可是还是报这个错误


谢谢各路大神呀!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2019-5-29 20:10:11
Charlenefan3 发表于 2019-5-29 13:50
求教大神们:

我想对一个data.frame的每一行数 进入如下计算 该行前五个数  每个数乘以0.06 后十个数每个 ...
把function拿出来先定义一下,然后再将命名后的函数丢回去就行了
二维码

扫码加我 拉你入群

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

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

2019-5-30 08:43:38
function(x) sum(x * c(rep(0.06, 5), rep(0.07, 10)))
二维码

扫码加我 拉你入群

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

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

2019-5-30 17:08:10
熬夜头会秃 发表于 2019-5-29 20:10
把function拿出来先定义一下,然后再将命名后的函数丢回去就行了
啊 懂了 谢谢!!我去试试
二维码

扫码加我 拉你入群

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

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

2019-5-30 17:08:57
cheetahfly 发表于 2019-5-30 08:43
function(x) sum(x * c(rep(0.06, 5), rep(0.07, 10)))
原来要这样写 非常感谢!!!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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