Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
211 views
in Technique[技术] by (71.8m points)

r - how can I calculate mean of every 6 rows in a data frame based on the condition of other column?

I have a dataframe in R, contain 3000 rows and 2 columns (temp, flag), I am trying to calculate "meantemp" as the third column for every 6 rows if the corresponding values in flag column are not NA, SO if flage values are equal to NA I want to show in the meantemp column NA value. sorry for this question.

question from:https://stackoverflow.com/questions/65661714/how-can-i-calculate-mean-of-every-6-rows-in-a-data-frame-based-on-the-condition

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can try :

library(dplyr)

df %>%
  group_by(group = ceiling(row_number()/6)) %>%
  mutate(meantemp = if(all(is.na(flag))) mean(temp, na.rm = TRUE) else NA) %>%
  ungroup() %>%
  select(-group) -> df

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...