在R中的特定数据帧行中搜索字符串

时间:2012-02-16 05:32:12

标签: r dataframe

我有这样的数据框:

   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?中做到这一点?

3 个答案:

答案 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