如何在 r 中使用 all() 和 any() 函数(附示例)


R 中的all()any()函数可用于检查表达式中向量中的所有或某些值是否计算为 TRUE。

这些函数使用以下语法:

 #check if all values in x are less than 10
all(x < 10)

#check if any values in x are less than 10
any(x < 10)

以下示例展示了如何在实践中使用每个功能。

示例 1:将 all() 和 any() 与 Vector 一起使用

我们可以使用以下all()any()函数来检查向量中的部分或全部值是否小于 10:

 #define vector of data values
data <- c(3, 4, 4, 8, 12, 15)

#check if all values are less than 10
all(data < 10)

[1] FALSE

#check if any values are less than 10
any(data < 10)

[1] TRUE

all()函数的计算结果为FALSE ,因为向量中的所有值均不小于 10。

any()函数的计算结果为TRUE ,因为向量中至少有一个值小于 10。

示例 2:将 all() 与 NA 值一起使用

如果我们将all()函数与具有 NA 值的向量一起使用,我们可以收到NA结果:

 #define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)

#check if all values are less than 10
all(data < 10)

[1] NA

为了避免这种情况,我们需要指定na.rm=TRUE来首先从向量中删除 NA 值,然后再检查所有值是否满足条件:

 #define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)

#check if all values are less than 10 (and ignore NA values)
all(data < 10, na. rm = TRUE )

[1] TRUE

all()函数现在的计算结果为TRUE ,因为假设我们忽略 NA 值,向量中的每个值都小于 10。

示例 3:将 all() 和 any() 与数据框列一起使用

我们还可以使用all()any()函数来计算数据框列的表达式。

例如,假设我们在 R 中有以下数据框:

 #define data frame
df <- data. frame (points=c(30, 22, 19, 20, 14, NA),
                 assists=c(7, 8, 13, 13, 10, 6),
                 rebounds=c(8, 12, NA, NA, 5, 8))

#view data frame
df

  points assists rebounds
1 30 7 8
2 22 8 12
3 19 13 NA
4 20 13 NA
5 14 10 5
6 NA 6 8

我们可以使用all()any()函数来计算“bounces”列中值的不同表达式:

 #check if all values are less than 10 in rebounds column
all(df$rebounds < 10, na. rm = TRUE )

[1] FALSE

#check if any values are less than 10 in rebounds column
any(df$rebounds < 10, na. rm = TRUE )

[1] TRUE

#check if there are any NA values in rebounds column
any(is. na (df$rebounds))

[1] TRUE

从结果我们可以看出:

  • 跳出率栏中的所有值均不小于 10。
  • 篮板数栏中至少有一个值小于 10。
  • 篮板数一栏中至少有一个 NA 值。

相关:如何在 R 中使用 is.na(附示例)

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中向数据框添加列
如何在R中的数据框中添加空列
如何在R中按列对数据框进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注