楼主: 风之将尽
4654 2

[问答] R语言if用法问题 [推广有奖]

  • 4关注
  • 0粉丝

本科生

82%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0.0001
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
2058 点
帖子
96
精华
0
在线时间
57 小时
注册时间
2015-5-14
最后登录
2022-1-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
mystats <- function(x, na.omit=FALSE){
             if (na.omit)
                 x <- x[!is.na(x)]
             m <- mean(x)
             n <- length(x)
             s <- sd(x)
             skew <- sum((x-m)^3/s^3)/n
             kurt <- sum((x-m)^4/s^4)/n - 3
             return(c(n=n, mean=m, stdev=s, skew=skew, kurtosis=kurt))
            }
myvars <- c("mpg", "hp", "wt")
sapply(mtcars[myvars], mystats)
今天在看R语言实战里这段时突然想到一个问题,R是怎么区分条件语句if的执行范围的?
这个函数里的意思应该是求均值、方差什么的,如果na.omit=T把为空的去掉。那为什么R不会认为是在na.omit=T时才去执行下面的均值、方差、峰度的运算呢?
就因为x那一行首行缩进了吗?

二维码

扫码加我 拉你入群

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

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

关键词:R语言 stats

沙发
jiangbeilu 学生认证  发表于 2017-2-18 20:54:47 |只看作者 |坛友微信交流群
if只管下面的第一行,后面的不管。
如果需要在If里包含多行,使用大括号。
  1. if (na.omit){
  2.                  x <- x[!is.na(x)]
  3.              m <- mean(x)
  4.              n <- length(x)
  5.              s <- sd(x)
  6. }
复制代码

使用道具

藤椅
风之将尽 学生认证  发表于 2017-2-18 20:59:01 |只看作者 |坛友微信交流群
jiangbeilu 发表于 2017-2-18 20:54
if只管下面的第一行,后面的不管。
如果需要在If里包含多行,使用大括号。
谢谢大神!学习了!

使用道具

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

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

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

GMT+8, 2024-5-22 01:11