今天,由於數據框子集操作,我在我的代碼中遇到了一個錯誤。我想知道我發現的問題是一個錯誤還是我違反了R語義。CRAN-R:子集數據框錯誤或違反語義?
我使用R 2.15.2-61015(Trick or Treat)運行RHEL x86_64。我正在使用基本包中的子集操作。
下面的代碼應該是可重複的,並且它是在一個乾淨的R控制檯上運行的,這個控制檯是爲了這個測試而啓動的。
>teste <-data.frame(teste0=c(1,2,3),teste1=c(3,4,5))
>teste0<-1
>teste1<-1
>subset(teste,teste[,"teste0"]==1 & teste[,"teste1"]==1)
[1] teste0 teste1
<0 rows> (or 0-length row.names)
>subset(teste,teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1)
teste0 teste1
1 1 3
2 2 4
3 3 5
但是,如果我運行該子集外操作的邏輯代碼:
>teste[,"teste0"]==teste0 & teste[,"teste1"]==teste1
[1] FALSE FALSE FALSE
我希望這兩個子集的操作會產生一個空的數據幀。但是,第二個返回完整的數據幀。這是一個錯誤還是我錯過了有關R環境和命名空間的東西?
感謝你的幫助, 米格爾
這絕對不是一個錯誤。 – Andrie