2012-02-16 58 views
0

數據幀中的特定行的字符串我有這樣的數據幀:搜索中的R

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.8無。在第3行和第4行中在同一列中爲5和0.2。

和我有2000行,當然不能手動。

有沒有辦法在R?

+1

當你只想在第5列的第1行和第2行以及第5列的第3行和第4行找到值時,爲什麼會有多少行都在一起?這只是4個地方尋找2個數字。它表明你誤解了你的問題。 – John 2012-02-16 06:27:42

回答

2

你的問題很不清楚。

如果你想在.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) 
0

首先在矩陣中查找所有匹配的位置。

d <- matrix(round(runif(50),1), nc=5) 
res_ind <- which(d == .8, arr.ind=TRUE) 

然後將結果限制爲所需的行&列

res_ind[res_ind[,"row"] %in% 1:2 & res_ind[,"col"] %in% 5,]#rows 1-2 & column 5 
0

我相信哈德利Wickhams「stringr」包有一定的功能時,通過數據幀,可以很容易地做到字符串搜索。類似str_locate(df [1:2,5],「0.8」)

雖然不確定。我只是剛開始使用它來解析HTML