首页 > 解决方案 > 使用向量中的相关位置来查找索引

问题描述

在一项描述他们进食时间的研究中,我为每个参与者提供了一个向量。例如参与者 1 和 2 分别有

> eating.period.1
 [1] "Day 1 (1/18/15)"     "    Breakfast"       "    Morning Snack"   "    Lunch"           "    Afternoon Snack"
 [6] "    Dinner"          "    Evening Snack"   "Day 2 (1/19/15)"     "    Breakfast"       "    Morning Snack"  
[11] "    Lunch"           "    Afternoon Snack" "    Dinner"          "    Evening Snack"   "Day 3 (1/20/15)"    
[16] "    Breakfast"       "    Morning Snack"   "    Lunch"           "    Afternoon Snack" "    Dinner"         
[21] "    Evening Snack"   "Average"   


> eating.period.2
 [1] "Day 1 (9/16/15)"     "    Breakfast"       "    Morning Snack"   "    Lunch"           "    Afternoon Snack"
 [6] "    Dinner"          "    Evening Snack"   "Day 2 (9/17/15)"     "    Breakfast"       "    Lunch"          
[11] "    Afternoon Snack" "    Dinner"          "    Evening Snack"   "Day 3 (9/21/15)"     "    Breakfast"      
[16] "    Lunch"           "    Dinner"          "    Evening Snack"   "Average"            

如何获取第 X 天和 X+1 天之间的进食期指数?

标签: rindexing

解决方案


我会使用这样的东西:

find_index <- function(eating_period, day1, day2, meal){
  is <- grep(day1, eating_period, ignore.case = TRUE)
  ie <- grep(day2, eating_period, ignore.case = TRUE)
  im <- grep(meal, eating_period[(is+1):(ie-1)], ignore.case = TRUE)
  is+im
}
eating.period.2 <- c("Day 1 (9/16/15)",
"    Breakfast",
" Morning Snack",
"    Lunch",
"Afternoon Snack",
"Day 2 (9/17/15)")

find_index(eating.period.2, "day 1", "day 2", "breakfast")

输出

 # 2

推荐阅读