【发布时间】:2018-03-20 10:22:57
【问题描述】:
我想找出观察到的案例和未观察到的案例之间的区别:
set.seed(42)
df <- data.frame(type = factor(rep(c("A", "B", "C"), 2)), observed = rep(c(T,F), 3),
val1 = sample(5:1, 6, replace = T), val2 = sample(1:5, 6, replace = T),
val3 = sample(letters[1:5], 6, replace = T))
# type observed val1 val2 val3
# 1 A TRUE 1 4 e
# 2 B FALSE 1 1 b
# 3 C TRUE 4 4 c
# 4 A FALSE 1 4 e
# 5 B TRUE 2 3 e
# 6 C FALSE 3 4 a
以下代码仅适用于两种不同类型的情况(例如levels(df$type) == c("A", "B"),但不适用于上面提供的df:
df %>%
group_by(type, observed) %>%
summarise_if(is.numeric, funs(diff(., 1)))
想要的输出是:
# type val1 val2
# A 0 0
# B -1 -2
# C -1 0
【问题讨论】:
-
你的种子错了。我得到一个不同的(值)数据框
-
谢谢@Sotos,我更正了
标签: r dplyr grouping summarize