我有5個變量的數據框。每當它們中的一個(樹,變量3)發生變化時,我需要拉動整行並將其放置到一個新對象中。問題是我不知道任何邏輯運算符的值是從一行變到另一行。所以我完全期待一個錯誤,並得到了這個錯誤。這是我想出了這樣做的代碼:R中的矩陣表示法中的邏輯運算符
dat1<-read.csv("filepath", header=T) #Reads in file
dat<-NULL #Creates null object for for loop below
dat1<-as.matrix(dat1) #Code below only "works" on matrices
for (i in 2:198025) { if(dat1[i,3]-dat1[i-1,3]!=0){dat[i,]=dat1[i,]} } #Supposed to compare the row, i with the value of the row above.
我試圖做一個減法,因爲如果行之間的區別是什麼,但0,則意味着該值必須有所改變。問題是R不喜歡矩陣符號內的邏輯表達式。除了一些冗長的線性組合來找到獨特的價值之外,我想不出任何其他方式來做到這一點,我知道必須有更好的方法。
下面是一些樣本數據
r1<- c(1,2,1,4,5)
r2<- c(1,3,1,5,6)
r3<- c(1,4,2,5,6)
r4<- c(1,4,2,6,7)
dat1<- rbind(r1,r2,r3,r4)
它不是實際的數據,但你可以用它來測試for循環。基本上,我需要的是知道第三個變量在r2和r3之間變化的情況,它應該將r3(dat1中的第三行)粘貼到一個新的對象中。
這不會粘貼出我需要的東西。它用NA代替值。我需要拉整行並保存。基本上,每次「樹」變化時,我都需要知道整行的值。所以我需要知道r3中的內容,而且我真的只有部分數據。 – KathleenJ