Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据条件获取值之前的行数_R - Fatal编程技术网

R 根据条件获取值之前的行数

R 根据条件获取值之前的行数,r,R,我的第一个data.frame结构如下: structure(list(Trial = c("Left - 180 degrees", "Left - 300 degrees", "Left - 60 degrees", "Right - 180 degrees", "Right - 300 degrees", "Right - 60 degrees", "Left - 180 degrees", "Left - 300 degrees", "Left - 60 degrees", "Ri

我的第一个
data.frame
结构如下:

structure(list(Trial = c("Left - 180 degrees", "Left - 300 degrees", 
"Left - 60 degrees", "Right - 180 degrees", "Right - 300 degrees", 
"Right - 60 degrees", "Left - 180 degrees", "Left - 300 degrees", 
"Left - 60 degrees", "Right - 180 degrees", "Right - 300 degrees", 
"Right - 60 degrees"), Region = c("Hamstring", "Hamstring", 
"Hamstring", "Hamstring", "Hamstring", "Hamstring", "Quad", "Quad", 
"Quad", "Quad", "Quad", "Quad"), PeakPower = c(118, 90, 
156, 105, 90, 140, 146, 111, 247, 186, 
133, 270)), .Names = c("Trial", "Region", "PeakPower"
), row.names = c(NA, -12L), class = "data.frame")
我希望根据下面另一个名为
RawData
的数据框中的
Trial
Region
找到每个
PeakPower
值。我还希望计算达到峰值功率所需的时间(每行=1秒)。这只是0和每个
PeakPower
值之间的行数。例如:

PeakPower <- c(0,0,0,0,3,5,8,19,20,0,0,0,0,0,60,65,88,90,94,99,100,105,107,118,114,100)
Trial <- c("Left - 180 degrees")
Region <- c("Hamstring")
RawData <- data.frame(cbind(PeakPower, Trial, Region))

PeakPower带包
dplyr

data_frame(PeakPower, Trial, Region) %>% 
  group_by(Trial,Region) %>% 
  mutate(Max=which.max(PeakPower)) %>% 
  filter(row_number()<=Max) %>%
  arrange(desc(row_number()))%>%
  mutate(Min=which.min(PeakPower)) %>% 
  filter(row_number()<Min) %>%
  summarise(PeakPower=max(PeakPower), Time=n()) %>%
  ungroup

# A tibble: 1 × 4
               Trial    Region PeakPower  Time
               <chr>     <chr>     <dbl> <int>
1 Left - 180 degrees Hamstring       118    10
数据帧(峰值功率、试验、区域)%>%
分组依据(试验,地区)%>%
突变(最大值=哪个。最大值(峰值功率))%>%
过滤器(行号()%
排列(描述(行号())%>%
突变(最小值=哪个.Min(峰值功率))%>%
过滤器(行号()%
总结(峰值功率=最大(峰值功率),时间=n())%>%
解组
#一个tibble:1×4
试验区峰值功率时间
1左-180度腘绳肌118 10

@HubertL进入Excel并手动调用!我想知道如何在R中执行此操作以自动化和加快过程。在第二个数据集中,区域为“左180度”,而在第一个数据集中,区域为“腿筋”“…你能试着澄清一下你有什么和你想要什么吗?”HubertL编辑。道歉-谢谢你的回复。