R 编程中的 which() 函数

在 R 中的 **which() 函数返回满足给定的条件的值的位置或索引. 在 R 中的 Which() 函数给你一个逻辑向量中的值的位置。

函数()在 R 中的语法

which(): R中的 which函数返回逻辑矢量中的值的位置。

1which(x,arr.ind = F,useNames = F)

何处,

  • X = 输入逻辑 矢量.
  • Arr.ind = 如果 x 是数组,则返回数组索引
  • useNames = 表示数组的尺寸名称

一个简单的例子(功能)

好吧,你得到了哪个功能的定义以及它的工作性质,现在,让我们把我们学到的东西应用到实际上。

让我们看看它是如何工作的。

1which(letters=="p")

十六( )

1which(letters=="n")

十四(四)

1which(letters=="l")

◎ 12 個

lettters是一个内置的常数,英语字母的26个字母全部序列。

您所看到的输出代表了数据框中的每个字母的位置,正如您所看到的,p字母在字母中是第16位,而ln字母分别是第14位和第12位。

现在让我们学习如何与哪个功能一起工作。

使用 which() 函数与矢量

现在,让我们在R语言中创建一个矢量,然后使用哪个函数进行位置跟踪。

1#creating a vector 
2df<- c(5,4,3,2,1)
1#Postion of 5
2which(df==5)

1 个

1#Position of 1
2which(df==1)

1#Position of values greater than 2
2which(df>2)

1 2 3

很棒! R 中的 which() 返回给定的输入中的值的位置. 您还可以使用该函数通过特定的条件并获得匹配条件的输出位置,正如我们在上一个示例中所看到的那样。

使用 which() 函数与数据框架

现在,让我们看看我们如何应用哪个函数与 [R langauge中的数据框架]( / 社区 / 教程 / 数据框架-in-r 编程)有关。

1df<-datasets::BOD
2df
1Time demand
21 1 8.3
32 2 10.3
43 3 19.0
54 4 16.0
65 5 15.6
76 7 19.8

为此,我们正在使用 BOD 数据集,其中包括 2 个列,即 Time 和 Demand。

让我们使用哪个函数,并尝试找到数据中的值的位置。

1which(df$demand=='10.3')
12

您还可以输入一个值列表到 which() 函数. 请参阅下面的示例,我正在尝试从数据框中找到两个值的位置。

1which(df$demand==c(8.3,16.0))
11 4

在数据框中查找使用( )的数字值的列

您甚至可以使用 which() 函数来查找包含数字数据的数据中的列名。

让我们看看它在R语言中是如何工作的,为此,我们正在使用Iris数据集。

1df<-datasets::iris
2df
 1Sepal.Length Sepal.Width Petal.Length Petal.Width Species
 21 5.1 3.5 1.4 0.2 setosa
 32 4.9 3.0 1.4 0.2 setosa
 43 4.7 3.2 1.3 0.2 setosa
 54 4.6 3.1 1.5 0.2 setosa
 65 5.0 3.6 1.4 0.2 setosa
 76 5.4 3.9 1.7 0.4 setosa
 87 4.6 3.4 1.4 0.3 setosa
 98 5.0 3.4 1.5 0.2 setosa
109 4.4 2.9 1.4 0.2 setosa
1110 4.9 3.1 1.5 0.1 setosa
1211 5.4 3.7 1.5 0.2 setosa
1test<-which(sapply(df,is.numeric))
2colnames(df)[test]
1"Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"

输出显示,虹膜数据集中有5个列,其中4个是数字列,1个是分类列(物种)。

我们在 R 中使用了 apply function in R 以及这里的 which() 方法。

which() 函数仅按输入条件返回了数列的名称,如果你是一个数据分析师,那么 which() 函数对你来说是无价的。

什么功能与R中的矩阵

最后,我们到达了R中的矩阵(/community/tutorials/matrix-operations-in-r)。好吧,您可以在R语言中使用 which()函数来获取矩阵中的值的位置。

第一件事情 - 创建一个矩阵

1df<-matrix(rep(c(1,0,1),4),nrow = 4)
2df
1[,1] [,2] [,3]
2[1,]    1 0 1
3[2,]    0 1 1
4[3,]    1 1 0
5[4,]    1 0 1

很棒!!! 你刚刚创建了一个看起来不错的矩阵. Kudos. 让我们使用 which() 来获取值 '0' 在我们的矩阵的位置。

1which(df==0,arr.ind = T)
1row col
2[1,]   2 1
3[2,]   1 2
4[3,]   4 2
5[4,]   3 3

好吧,哪个函数在矩阵中返回了值0的位置。

0的第一个发生在第二行第一列,然后下一个发生在第一行,第二列,然后我们有第四行,第二列,最后第三行,第三列。

结论

R 中的 which() 函数是数据分析和采矿中最广泛使用的函数之一。

如果您正在处理大量数据,那么在 R 中很难找到特定值的位置,然后会出现哪个()。

此时此刻,仅此而已! 快乐的定位!!!

** 更多阅读:** R 文档

Published At
Categories with 技术
Tagged with
comments powered by Disqus