簡體   English   中英

如何將值推廣到R中的其他行

[英]How to generalize a value to other rows in r

我有很多行的數據框。

每行都有一個人的數據,一個人可以有1個或更多行。

有一列的填充不完全,因此對於一個人來說,即使知道該值,有時也為NA

我想將已知值推廣到所選人員的所有其他行,如果此人員沒有任何值,請輸入NA

樣品:

df = data.frame(person=c(1,1,1, 2,2,2, 3,3,3), val=c(7,7,7, NA,5,NA, NA,NA,NA))

預期產量:

df = data.frame(person=c(1,1,1, 2,2,2, 3,3,3), val=c(7,7,7, 5,5,5, NA,NA,NA))

我該如何實現?

PS:我喜歡dplyr,請隨時使用。

在基數R中,您可以使用ave

ave(df$val, df$person, FUN = function(x) mean(x, na.rm = TRUE))
#[1]   7   7   7   5   5   5 NaN NaN NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM