我正在使用数据框网格 df
,如下所示:
1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 4 0 0 0
4 0 0 0 2 2
我试图找到某些值的位置 . 到目前为止,我使用了以下代码:
which(df==2, arr.ind=TRUE)
# row col
#4 4 4
#4 4 5
但很明显,这会返回值相对于“.csv”文件中单元格的位置,并忽略我导入“.csv”文件时设置为“TRUE”的 Headers 和行 .
到目前为止,这并不是一个问题,因为行/列名称已匹配 . 但是,如果我有以下行名称/ Headers :
A B C D E
a 0 0 0 0 0
b 0 0 0 0 0
c 0 4 0 0 0
d 0 0 0 2 2
df <- structure(list(A = c(0L, 0L, 0L, 0L), B = c(0L, 0L, 4L, 0L),
C = c(0L, 0L, 0L, 0L), D = c(0L, 0L, 0L, 2L), E = c(0L, 0L,
0L, 2L)), .Names = c("A", "B", "C", "D", "E"), class = "data.frame",
row.names = c("a", "b", "c", "d"))
结果将保持不变,就像我使用第一个网格一样 .
which(df==2, arr.ind=TRUE)
# row col
#d 4 4
#d 4 5
是否有替代方法返回引用文件的行名称/ Headers 的结果?我预计:
# row col
# d D
# d E
非常感谢 .
1 回答
你可以用