我有这样的数据框:
1 2 3 4 5
1 0.1 0.2 0.5 0.4 0.8
2 0.6 0.8 0.4 0.7 0.2
3 0.6 0.1 1.8 0.7 0.2
4 0.6 0.7 0.4 0.6 0.1
现在,我想在第0列的前两行中搜索数字0.8。同一列中的5和0.2行3和4行。
我有2000行,当然不能手动完成。
有没有办法在R?中做到这一点?
答案 0 :(得分:3)
你的问题很不清楚。
如果你想要.8
的位置,可以这样做:
d <- matrix(round(runif(50),1), nc=5)
which(d == .8, arr.ind=TRUE)
如果您希望同一列中有两个.2
的人,
你可以使用:
# Shift the array
d1 <- rbind( d[-1,], rep(0,ncol(d) ) )
d2 <- rbind( d1[-1,], rep(0,ncol(d1)) )
which( d == .8 & d1 == .2 & d2 == .2, arr.ind=TRUE )
答案 1 :(得分:0)
首先找到矩阵中所有匹配的位置。
d <- matrix(round(runif(50),1), nc=5)
res_ind <- which(d == .8, arr.ind=TRUE)
然后将结果限制为所需的行和&amp;列
res_ind[res_ind[,"row"] %in% 1:2 & res_ind[,"col"] %in% 5,]#rows 1-2 & column 5
答案 2 :(得分:0)
我相信Hadley Wickhams的'stringr'包有一些功能,可以在传递数据帧时轻松进行字符串搜索。类似于str_locate(df [1:2,5],“0.8”)
虽然不确定。我刚开始玩它来解析HTML