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编辑。道歉-谢谢你的回复。