0

私は次のようにマトリックスにデータを持っています:

label     1        2      3       4
id_101   10       30      43      32
id_102    3       32     43       43
id_111    45      34     22       66
id_201    87      65     66       34
id_202    45      76     76       44
......

このデータはリストに変換されているため、次のようになります。

[[1]]
     [1]  label   1     2       
     [3]      3   4
[[2]]
     [1]  id_101 .....

 ......

私が欲しいのは、値aがlabelという名前の列の値の1つと一致するかどうかを知ることです。そのために、match命令でforループを使用しています。

    a<-"id_201"    ///for example
for (pos in 2:length(matrix))
{

    if (!is.na(match(a,tabd[[pos]][[1]])))
    {
        found<-1
        print(found)
        break
    }
}
    if (found) print(pos)

forループを使用せずに、変数aの値がラベル の下の列の任意の値と一致するかどうかを確認し、その位置を取得する効率的な方法があるかどうか疑問に思いました。ありがとう

4

1 に答える 1

0

二重引用符で囲んで印刷されていますが、私はあなたが説明しているものにいくらか似たリストを作成しました。それで作業することは、これが機能するはずであることを示唆しています

which( sapply(txtList, "[", 1) == a )
于 2012-10-02T03:56:29.180 に答える