在R中存储表中的索引

在R中存储表中的索引,r,indexing,R,Indexing,我需要一些帮助 我有一个多栏的表格。一个从1到30不等,另一个从1到6不等。其他列具有多个值。我需要的是存储第一列的值1和第二列的值1的索引,第一列的值1和第二列的值2的索引,所以第四。。。第1列的值为2,第2列的值为2,第4列的值为2,直到我有了所有索引 提前感谢您可以使用“which”函数获取索引: y = sample(1:6, 30, replace=T) x = sample(1:30, 30, replace=T) df = data.frame(x,y) head(df)

我需要一些帮助

我有一个多栏的表格。一个从1到30不等,另一个从1到6不等。其他列具有多个值。我需要的是存储第一列的值1和第二列的值1的索引,第一列的值1和第二列的值2的索引,所以第四。。。第1列的值为2,第2列的值为2,第4列的值为2,直到我有了所有索引


提前感谢

您可以使用“which”函数获取索引:

y = sample(1:6, 30, replace=T)
x = sample(1:30, 30, replace=T)

df = data.frame(x,y)
head(df)
   x y
1 22 1
2 13 5
3 28 4
4 28 3
5  7 3
6 30 6

which(df$x==2)
[1] 16 22
which(df$y==2)
[1] 10 11 12 18 21 27
您可以使用简单的“for”循环执行多个测试:

for(i in 1:6){
    cat("indexes of",i,"in x:\n")
    print(which(df$x==i))
    cat("indexes of",i,"in y:\n")
    print(which(df$y==i))
    cat("\n")
}

indexes of 1 in x:
integer(0)
indexes of 1 in y:
[1]  1  9 14 19 24 26

indexes of 2 in x:
[1] 16 22
indexes of 2 in y:
[1] 10 11 12 18 21 27

indexes of 3 in x:
integer(0)
indexes of 3 in y:
[1]  4  5 17

indexes of 4 in x:
integer(0)
indexes of 4 in y:
[1]  3  7 13 20 23 28

indexes of 5 in x:
[1] 23
indexes of 5 in y:
[1]  2 15 16 29 30

indexes of 6 in x:
integer(0)
indexes of 6 in y:
[1]  6  8 22 25
对于所有列:

for(i in 1:6) {for(j in 1:ncol(df)) {cat("indexes of",i,"in",names(df)[j],'\n'); print(which(df[[j]]==i))} ;cat('\n')}

indexes of 1 in x 
integer(0)
indexes of 1 in y 
[1]  1  9 14 19 24 26
...

这是不清楚的。。。因此,制作一个列数较少的示例,并发布代码进行构造。一个问题是它是否真的是一个R表,它真的是一个类似矩阵的对象。谢谢。这真的很有帮助!你应该点击upvote/勾选并接受答案。