我有以下數據:合併數據
Data <- data.frame(Project=c(123,123,123,123,123,123,124,124,124,124,124,125,125,125,126,126),
Value=c(1,4,7,3,8,9,8,3,2,5,6,2,2,1,8,3),
OldValue=c("","Open","In Progress","Complete","Open","In Progress","Complete","Open","In Progress","System Declined","In Progress","","Open","In Progress","In Progress",""),
NewValue=c("Open","In Progress","Complete","Open","In Progress","Complete","Open","In Progress","System Declined","In Progress","Complete","Open","In Progress","Complete","","In Progress"))
Data$First <- ifelse(((Data$OldValue==""|Data$OldValue=="Complete"|Data$OldValue=="System Declined")&Data$NewValue=="Open"),Data$Value,NA)
Data$Second <- ifelse(((Data$OldValue=="Open"|Data$OldValue=="Complete"|Data$OldValue=="System Declined")&Data$NewValue=="In Progress"),Data$Value,NA)
Data$Third <- ifelse(((Data$NewValue=="Complete"|Data$NewValue=="System Declined")&Data$OldValue=="In Progress"),Data$Value,NA)
對於每個唯一的項目ID,我想將第一,第二&第三值組合成一排。我只是想這樣做,如果在的NewValue列中的值遵循兩種下面的序列中的:
公開賽正在進行,完成 或 打開,在進步,系統拒絕
所以項目123將有兩個數據行以及項目125將會有一個。第10行和第11行將被排除,因爲它不符合上述順序
對此進行編碼的最簡單方法是什麼?
感謝您的幫助,但我遇到了一個問題,當它應用到mt更大的數據集。我意識到在我的原始邏輯(Data $ First,Data $ Second,Data $ Third)中沒有包含OldValue,NewValue關係的幾個實例。我更新了問題中的原始代碼,以反映我正在談論的確切實例。當我用新數據重新運行代碼時,出現錯誤「R Session Aborted。R遇到致命錯誤,會話終止」。 – Dfeld
@Dfeld你的數據大小是多少?我現在要爲我的工作做好準備,以後再看看你的問題。希望你不要介意。 – jazzurro
從csv文件導入大約10,000行。我已經成功測試了幾千行代碼,但是像上面解釋過的並添加到代碼中的實例會導致R崩潰。再次感謝爵士樂。不要急 – Dfeld