我有一個非常類似的問題來替換重複值在數據框中。在從其它列中的數據幀使用向量標準
我有這樣一個數據幀(加上一些額外的列):
ID<- c("1V","1V","1V","1V","2V","2V","4V","4V","4V","4V","4V")
year<- c(1,1,1,2,1,1,2,2,3,3,3)
sequence<- c(1,2,2,1, 1,2,1,2,1,1,1)
score <- c(5,5,5,5,10,10,10,10,11,11,11)
examp <- data.frame(ID,year, sequence, score)
> examp
ID year sequence score
1 1V 1 1 5
2 1V 1 2 5
3 1V 1 2 5
4 1V 2 1 5
5 2V 1 1 10
6 2V 1 2 10
7 4V 2 1 10
8 4V 2 2 10
9 4V 3 1 11
10 4V 3 1 11
11 4V 3 1 11
我需要的是每個ID,年份和順序與NA內更換重複的分數。此外,評分序列與評分應該用NA代替。因此,沒有行被刪除,只有特定的條目。
> examp
ID year sequence score
1 1V 1 1 5
2 1V 1 2 5
3 1V 1 NA NA
4 1V 2 2 5
5 2V 1 1 10
6 2V 1 2 10
7 4V 2 1 10
8 4V 2 2 10
9 4V 3 1 11
10 4V 3 NA NA
11 4V 3 NA NA
保留所有行。不同ID /年/序列可能會出現相同的分數,但只有在這三列的每個獨特組合中,我才能取代重複分數。
實施例與來自其它鏈接的問題的單個載體和溶液:
a <- 1 1 1 2 3 2 2 2 2 1 0 0 0 0 2 3 4 4 1 1
ifelse(a == c(a[1]-1,a[(1:length(a)-1)]) , 0 , a)
[1] 1 0 0 2 3 2 0 0 0 1 0 0 0 0 2 3 4 0 1 0
我不確定如何適應上面的代碼中的問題上面多個標準。可能嗎? 主要是,最重要的是取代分數,但如果有人有解決方案來取代分數和序列,我會很高興。
謝謝,這很簡單,完美地工作! – Lisarv