在R中存储表中的索引
我需要一些帮助 我有一个多栏的表格。一个从1到30不等,另一个从1到6不等。其他列具有多个值。我需要的是存储第一列的值1和第二列的值1的索引,第一列的值1和第二列的值2的索引,所以第四。。。第1列的值为2,第2列的值为2,第4列的值为2,直到我有了所有索引在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)
提前感谢您可以使用“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/勾选并接受答案。