r-请帮助我理解这段代码



我刚刚开始从Datacap学习R,并被以下函数卡住了:

below_zero <- function(x) {
return(x[x < 0])
}

网站上说,这个功能的作用如下:

我们已经创建了一个函数below_zero((,它接受数值,并返回仅包含这些值的向量严格低于零。

此函数将应用于名为";temp":

[[1]][1]3 7 9 6-1

[[2]][1]6 9 12 13 5

[[3]][1]4 8 3-1-3

[[4]][1]1 4 7 2-2

[[5]][1]5 7 9 4 2

[[6]][1]-3 5 8 9 4

[[7]][1]3 6 9 4 1

但是,我并不能特别理解这一部分:

(x[x<0](

例如,如果x[1]返回向量中的第一个元素,那么[x < 0]到底在做什么?

x < 0返回的是一个逻辑语句还是一个数字?

请解释一下这段代码的作用。

感谢

如果您为示例向量x <- c(-3,-1,1,2)尝试x < 0,您将得到TRUE TRUE FALSE FALSE的结果,因为R会检查x的每个值,如果它小于0。由于结果是一个逻辑向量,您可以将其用作x的选择器。一个完整的例子:

x <- c(-3,-1,1,2) # input
y <- x < 0 # logical vector
x[y] # filter

因此,您有两种选择:

  1. by index:正如您在x[1]中提到的,返回第一个值
  2. 通过过滤x[x < 0][]内部的表达式会告诉你某个东西是否包含该表达式,外部表达式根据内部表达式的结果进行过滤

最新更新