楼主: 秦红
1552 2

[程序分享] 为什么for循环之后只用了最后一个值 [推广有奖]

  • 0关注
  • 0粉丝

高中生

15%

还不是VIP/贵宾

-

威望
0
论坛币
605 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1139 点
帖子
22
精华
0
在线时间
14 小时
注册时间
2015-12-13
最后登录
2018-9-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
h<-seq(from=0.1,to=0.5,by=0.01)
k1<-matrix(NA,nrow = length(testxy$x),ncol =length(trainxy$x))
kh<-function(x0,x,h){
  for(i in 1:length(testxy$x)){
    for(j in 1:length(trainxy$x)){
      m<-(x0[i]-trainxy$x[j])/h
      k1[i,j]<-k(m)/h
  }
    }
  return(k1)
}
for(i in 1:length(h)) {
  K<-kh(testxy$x,trainxy$x,h[i])
}
a<-apply(K,MARGIN = 1,FUN = sum)
y1<-matrix(trainxy$y,nrow = 99,ncol = 1)
b<-K%*%y1
y2<-b/a
为什么只用了最后一个i的值
二维码

扫码加我 拉你入群

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

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

关键词:for循环 最后一个 For

沙发
菊花冰糖水 发表于 2018-4-19 09:13:21 |只看作者 |坛友微信交流群
没太懂说的哪块的 for loop。是不是

  1. for(i in 1:length(h)) {
  2.   K<-kh(testxy$x,trainxy$x,h[i])
  3. }
复制代码


就是你说的 for 循环。
你没有存下每次循环的结果,而是每次结果都赋值给 K, 你跑完之后,当然 K 就只是最后一个 i,即 h的结果赋值给 K 了啊。其实 R 是跑了每个 i 的,只是你不停赋值给 K 就把之前的结果覆盖了。

我觉得,用 sapply 吧还是
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
秦红 发表于 2018-4-19 12:22:04 来自手机 |只看作者 |坛友微信交流群
菊花冰糖水 发表于 2018-4-19 09:13
没太懂说的哪块的 for loop。是不是


嗯嗯,我弄了一个矩阵给K赋值,谢谢

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 16:35