全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4996 2
2017-02-18
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那一行首行缩进了吗?

二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-18 20:54:47
if只管下面的第一行,后面的不管。
如果需要在If里包含多行,使用大括号。
复制代码
二维码

扫码加我 拉你入群

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

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

2017-2-18 20:59:01
jiangbeilu 发表于 2017-2-18 20:54
if只管下面的第一行,后面的不管。
如果需要在If里包含多行,使用大括号。
谢谢大神!学习了!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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