楼主: yan_huili
2423 7

[问答] 如何用循环语句计算列表中元素的值 [推广有奖]

  • 0关注
  • 0粉丝

大专生

43%

还不是VIP/贵宾

-

威望
0
论坛币
70 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
339 点
帖子
26
精华
0
在线时间
46 小时
注册时间
2017-11-15
最后登录
2019-2-22

楼主
yan_huili 发表于 2018-2-5 21:29:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求教一下,要将下列向量中的每一个数都通过自编函数计算结果,函数是一个分段计算的函数,有什么好的办法吗?能用循环不,怎么用呢?

g1<-c(0.17,0.26,0.09,0.41)
g2<-c(0.31,0.18,0.40,0.07,0.28)
g3<-c(0.32,0.14,0.18,0.26,0.62)
g4<-c(0.55,0.47,0.39,0.16)



fun<-function(x){
if(x==0){
  result<-1
  }
else if((x>0)&(x<=0.2)){
  result<-0.5-0.5*sin(pi*(x-0.1)/0.2)
  }
else{
  result<-0
}
  return( result)
}


二维码

扫码加我 拉你入群

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

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

关键词:循环语句 如何用

沙发
jinkelazzz 发表于 2018-2-6 08:17:36
fun(g1)就可以了吧

藤椅
yan_huili 发表于 2018-2-6 09:06:28
jinkelazzz 发表于 2018-2-6 08:17
fun(g1)就可以了吧
不行,要用SAPPLY(G1,FUN),但是我想问的是,能不能用循环来求G1,G2,G3,G4的函数值,因为不想同样的语句写四遍,而且我有五个函数,4*5=20遍!
Anyway, Thank you~

板凳
jinkelazzz 发表于 2018-2-6 09:32:24
可以把 g 存到list里面 再循环

报纸
ntsean 发表于 2018-2-6 14:24:00
最好不要循環,會很慢的

  1. fun <- function(x) {
  2.   y <- rep(0, length(x))
  3.   y[x == 0] <- 1
  4.   y[x > 0 & x <= 0.2] <- 0.5- 0.5* sin(pi * (x[x > 0 & x <= 0.2] -0.1) / 0.2)
  5.   y
  6. }
复制代码

地板
yywan0913 在职认证  发表于 2018-2-6 14:27:28
yan_huili 发表于 2018-2-6 09:06
不行,要用SAPPLY(G1,FUN),但是我想问的是,能不能用循环来求G1,G2,G3,G4的函数值,因为不想同样的语 ...
  1. > list <- list(g1,g2,g3,g4)
  2. > fun = function(x) ifelse(x==0,1,ifelse(x>0&x<=0.2,0.5-0.5*sin(pi*(x-0.1)/0.2),0))
  3. > lapply(list,fun)
  4. [[1]]
  5. [1] 0.05449674 0.00000000 0.57821723 0.00000000

  6. [[2]]
  7. [1] 0.00000000 0.02447174 0.00000000 0.72699525 0.00000000

  8. [[3]]
  9. [1] 0.00000000 0.20610737 0.02447174 0.00000000 0.00000000

  10. [[4]]
  11. [1] 0.0000000 0.0000000 0.0000000 0.0954915
复制代码

7
yan_huili 发表于 2018-2-7 11:10:44
yywan0913 发表于 2018-2-6 14:27
谢谢你帮我精简前面的程序,但是后面lapply(list,fun),好像并不能得到我想要的结果,因为这样计算出来的结果,只是G1,G2,G3,G4中第一个数的值,但是G1,G2,G3,G4每个向量中都有4或5个值,都是需要带入函数计算的

8
yywan0913 在职认证  发表于 2018-2-8 16:29:48
yan_huili 发表于 2018-2-7 11:10
谢谢你帮我精简前面的程序,但是后面lapply(list,fun),好像并不能得到我想要的结果,因为这样计算出来的 ...
  1. 我给的示例是只有各自的第一个值??
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 06:19