我有以下格式的三个变量 A、B 和 C
A B C
Cat1 1 NA
Cat1 2 NA
Cat1 1 NA
Cat1 2 NA
Cat1 NA 4
Cat1 NA 1
Cat1 NA 6
Cat1 NA 4
Cat1 7 NA
Cat1 9 NA
Cat1 3 NA
Cat1 2 NA
Cat1 NA 2
Cat1 NA 4
Cat1 NA 5
Cat1 NA 9
. . .
. . .
. . .
. . .
让我们说在变量 C 中,只要有来自 NA 的数值部分,它就应该被称为一个组,我必须找到该组中最大值和最小值的差异..有人可以帮忙吗
所需的输出:
当然。所需的输出如下:A Trips Value
Cat 1 Trip1 xx (dif of max & min of that trip)
使用dplyr
和的解决方案tidyr
。
library(dplyr)
library(tidyr)
dat2 <- dat %>%
mutate(trip = cumsum(is.na(C))) %>%
drop_na(C) %>%
mutate(trip = group_indices(., trip)) %>%
group_by(trip) %>%
summarize(Diff = max(C) - min(C)) %>%
ungroup()
dat2
# # A tibble: 2 x 2
# trip Diff
# <int> <dbl>
# 1 1 5
# 2 2 7
数据
dat <- read.table(text = "A B C
Cat1 1 NA
Cat1 2 NA
Cat1 1 NA
Cat1 2 NA
Cat1 NA 4
Cat1 NA 1
Cat1 NA 6
Cat1 NA 4
Cat1 7 NA
Cat1 9 NA
Cat1 3 NA
Cat1 2 NA
Cat1 NA 2
Cat1 NA 4
Cat1 NA 5
Cat1 NA 9",
header = TRUE, stringsAsFactors = FALSE)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句