我有一個數據框,我想重新塑造它,以便每個觀察obs
只有一行。下面是示例數據:聚合數據框並刪除不適用
data <- data.frame("obs" = c('1','1','1','2','2'),
"value1" = c(1,NA,NA,NA,NA),
"value2" = c(NA,NA,3,1,NA),
"value3" = c(NA,2,NA,NA,5))
數據是這樣的:
obs value1 value2 value3
1 1 NA NA
1 NA NA 2
1 NA 3 NA
2 NA 1 NA
2 NA NA 5
,我想它重塑爲:
obs value1 value2 value3
1 1 3 2
2 NA 1 5
謝謝!
你可以肯定,你將永遠不會有相同的OB和給定值列中輸入兩行?如果是這樣,喬蘭的答案很好。否則,如果每個'obs'值只需要一行,就必須決定如何處理它們。 – Justin
你說得對。現在我使用了Joran的代碼,我發現對於某些obs代碼,我有額外的值。在這種情況下,我怎麼能得到這些值的意思是每個obs只有一行? –
您可以修改其函數的第二行('else'語句),以返回「mean(x [!is.na(x)])'。 – Justin