R语言 探索纵向(每周)数据中不同时间点范围的数据覆盖率

3lxsmp7m  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(145)

这是一个非常基本的问题,可能更多的是关于数据争论而不是编码,对不起。
我有一个数据集,其中1520名参与者每周测量一次,持续12周。然而,存在大量缺失值,并且不同的参与者提供了不同数量的数据,以及来自不同周的数据(例如,一些人具有来自所有1 - 2周的数据,一些人仅具有来自第1-3周的数据,一些人仅具有来自第4-8周的数据,一些人具有来自第1-2周和第5-7周的数据但不具有来自第3-4周的数据,等等)。
我可以很容易地计算出有多少参与者有1,2,3等。观察,以及我从第1周、第2周等有多少观察。但是,我想知道我的数据覆盖范围是什么不同的一周范围(例如。第1-5周、第2-6周、第3-9周的观察次数是多少)。此外,在我收到此数据之前,每个参与者缺失的“周行”已被删除(见下文)。我使用R(我有一种感觉,这是我应该能够从频率表中做的事情,但我不能用我的大脑来处理它)。
5名参与者和10周的重复试验:

id<-rep(1:5, each=10)
week<-rep(1:10, times=5)
outcome<-rnorm(50)  #outcome is probably not needed for the example, but I put it in for  
                    #completeness
ind <- which(week %in% sample(week, 15))
week[ind]<-NA
exdata<-data.frame(id, week, outcome)
exdata2<-subset(exdata, exdata$week != "NA")

有人能建议一个程序,我可以找出不同的“周范围”的数据覆盖量从这样的数据?提前感谢!

jjjwad0x

jjjwad0x1#

定义一个函数可能会有所帮助,因为您没有指定需要计算多少个范围。

count_weeks_in_range <- function(dataset, start_value, end_value) {
  # Filter to select rows where the 'week' column falls within the specified range
  filtered_data <- subset(dataset, week >= start_value & week <= end_value)
  
  # Count the number of rows
  count <- nrow(filtered_data)
  
  return(count)
}

# Define the range you want to count
start_range <- 3
end_range <- 7

count <- count_weeks_in_range(exdata2, start_range, end_range)

cat("Number of occurrences in the range", start_range, "-", end_range, ":", count, "\n")

希望这对你有帮助:)

相关问题