初級問題來了,對不起......我有與結構如下數據集:重新排序的數據幀到基於行的名稱列[R
dat.1<-data.frame(id=c(1,1,1,2,2,2),test=c("test.1","test.2","test.3"),result=c(1,2,1,2,2,1))
dat.1
id test result
1 1 test.1 1
2 1 test.2 2
3 1 test.3 1
4 2 test.1 2
5 2 test.2 2
6 2 test.3 1
實際數據集目前有32次測試,1000 < ID號碼,結果總是二進制的 - 測試數量可以增加,ID也會增加。我想重新安排數據,使每個測試即「test.1」有像這樣的列:
dat.3<-data.frame(id=c(1,2),test.1=c(1,2),test.2=c(2,2),test.3=c(1,1))
dat.3
id test.1 test.2 test.3
1 1 1 2 1
2 2 2 2 1
這方面的一個小麻煩是,並非每一個ID已經發生了各項測試,所以任何解決方案將必須應付NA。只是在dat.3中澄清,測試的列內容是dat.1的結果列。
在據我已經得到了作爲創建一個「空」的數據幀,可以適應新的考驗的時刻被添加像這樣:
dat.2<-data.frame(id=c(1,2),test.1=c(NA,NA),test.2=c(NA,NA),test.3=c(NA,NA))
dat.2
id test.1 test.2 test.3
1 1 NA NA NA
2 2 NA NA NA
我一直在嘗試與ifelse與IF的邏輯dat.1 $ id == dat.2 $ id & dat.1 $ test ==「test.1」then where dat.2 col = test.1,輸入dat.1 $ result in dat.3 $ test.1 - 如果這有什麼意義的話!可以預見,沒有任何運氣,感覺我錯過了一個非常明顯的步驟/過於複雜的事情,所以任何幫助將不勝感激 - 謝謝
編輯:感謝您的意見 - 重塑已開始有所幫助;不過,我認爲我試圖用上面的例子過度簡化。我已經把下方的新示例數據集:
dat.4<-data.frame(id=c(1,1,1,1,1,1,2,2,2),result=c(1,1,1,2,2,2,3,3,3),
test=c("test.1","test.2","test.3"),result=c(1,2,1,2,2,2,2,2,1))
dat.1
id result test result.1
1 1 1 test.1 1
2 1 1 test.2 2
3 1 1 test.3 1
4 1 2 test.1 2
5 1 2 test.2 2
6 1 2 test.3 2
7 2 3 test.1 2
8 2 3 test.2 2
9 2 3 test.3 1
因此,每個ID(實際上是一個試樣ID)有其有合格的用於這項進一步測試的測試 - 此測試可具有單個或多個結果。因此,在最終的數據結構上面的例子是這樣的:
dat.3<-data.frame(id=c(1,1,2),result=c(1,2,3),test.1=c(1,2,2),test.2=c(2,2,2),
test.3=c(1,2,1))
dat.3
id result test.1 test.2 test.3
1 1 1 1 2 1
2 1 2 2 2 2
3 2 3 2 2 1
所以真的是我要尋找基於兩個列條件重塑 - 這是否有道理?
感謝。你可以根據兩列內容重塑嗎?在解決方案之前沒有預料到這個問題 - 將編輯原始問題進一步解釋 –