R语言的精华在于大巨细小,形形色色的函数可以利用,因而少不了呈现复合函数的环境——函数中的变量嵌套着函数。这时候数据的挪用一般遵循先内部后外部的顺序,下面是一个小小的例子供读者体会。
> | x <- c(6:-4) | 为向量x赋值从6到-4 |
> | x | 查察x |
[1] 6 5 4 3 2 1 0 -1 -2 -3 -4 | ||
> | sqrt(x) | 对x中的所有数据求平方根 |
[1] 2.449490 2.236068 2.000000 1.732051 1.414214 1.000000 0.000000 NaN [9] NaN NaN NaN 告诫信息:In sqrt(x) : 发生了NaNs | 因为向量中部门数据为负数,呈现告诫信息 | |
> | sqrt(ifelse(x >= 0, x, NA)) | 只对x向量中大于或便是0的数据举办平方根运算,其它的直接返回NA |
[1] 2.449490 2.236068 2.000000 1.732051 1.414214 1.000000 0.000000 NA [9] NA NA NA | 功效没有告诫信息,数据先是完成了ifelse()函数的运算——挑选大于或便是0的数据,然后才举办“外部”函数sqrt()的运算。所以不会堕落 | |
> ifelse(x >= 0, sqrt(x), NA) | 和上个例子对比,这里恰好把“外部”函数和“内部”函数变更 | |
[1] 2.449490 2.236068 2.000000 1.732051 1.414214 1.000000 0.000000 NA [9] NA NA NA 告诫信息: In sqrt(x) : 发生了NaNs | 功效呈现了告诫信息。原因就是sqrt()作为一个“内部”函数首先举办运算,而x中部门数据为负数不能直接举办平方根运算 |
