所以,我想從兩個現有的(數字)信息生成一個新的向量,一個爲參與者設置id,另一個表示觀察值。每個受試者都有不同的觀察時間。sapply函數(x)其中x是子集參數
現在,新的向量應該應該狀態:0當obs_no = 1; 1當obs_no =該id的最後一次觀察; NA之間的情況。
id obs_no new_vector
1 1 0
1 2 NA
1 3 NA
1 4 NA
1 5 1
2 1 0
2 2 1
3 1 0
3 2 NA
3 3 1
我想我可以用這樣的
new_vector <- c(0, rep(NA, times=length(obs_no[id==1])-2), 1)
代碼爲每個ID做到這一點separatly或者我猜只是使用MAX(),但它不會有任何區別。
但是手動添加每個參與者真的很不方便,因爲我有很多情況。我無法弄清楚如何製作一個通用函數。我嘗試使用sapply定義函數(x),但由於x位於子集括號內,因此無法使其工作。
任何建議都會有所幫助。謝謝。
如果一個團體只有一個觀察,那麼任何想法應該是什麼值? – akrun
噢,是的,如果只有一個觀察值應該是0!如果我交換第二行和第三行的順序,「重複」解決方案仍然有效!謝謝! – andreasgoteson
@andreasgoteson - 我已經交換了訂單來解釋這一點 - 現在''ave'版本應該可以工作。 – thelatemail