我想根据 4 个不同的列生成汇总统计信息。不同的汇总统计基于标签列(具有两个值)和不同的组列(组 1、2 和 3)计算。因此,您将获得 Label1*group1、Label1*group2 等的不同 tbl。
set.seed(123)
tbl <- tibble(
label = rep(c("Label1", "Label2"), 6),
group1 = rep(c("a", "b", "c", "d"), 3),
group2 = rep(c("x", "y","z"), 4),
group3 = rep(c("1", "1", "2", "2", "3", "3"), 2),
value1 = rnorm(12, 100, 10),
value2 = rnorm(12, 50, 5)
)
tbl
Run Code Online (Sandbox Code Playgroud)
我制作了一个示例函数,我希望该函数使用两个向量作为.x
和.y
参数。
tmp_label <- c("Label1", "Label2") # .x
group <- c("group1", "group2", "group3") # .y
# .f
tmp_function <- function(Label, group) {
tbl %>%
filter(label %in% …
Run Code Online (Sandbox Code Playgroud) 我有一个看似很小的问题。mutate_all()
我想与 结合使用case_when()
。示例数据框:
tbl <- tibble(
x = c(0, 1, 2, 3, NA),
y = c(0, 1, NA, 2, 3),
z = c(0, NA, 1, 2, 3),
date = rep(today(), 5)
)
Run Code Online (Sandbox Code Playgroud)
我首先使用以下代码制作了另一个数据框,将所有 NA 替换为 0,将值替换为 1。
tbl %>%
mutate_all(
funs(
case_when(
. %>% is.na() ~ 0,
TRUE ~ 1
)))
Run Code Online (Sandbox Code Playgroud)
现在我想用空白替换 NA 值(""
,并保留其他值不变。但是,我不知道如何以保留列值的方式设置 TRUE 值。
任何建议将不胜感激!
我有针对不同用户的应用程序交互数据集。应用交互保存为用户在特定周内与该功能交互的天数。示例表看起来像(出于实用目的注释掉 ID 和 weeknr):
tibble(
#id = (1, 1, 1),
#weeknr = (1, 2, 3),
var_1 = c(1, 2, 3, 2, 1),
var_2 = c(0, 0, 1, 4, 0),
var_3 = c(1, 1, 1, 0, 0)
)
Run Code Online (Sandbox Code Playgroud)
现在的目标是基于var_{1|3}
. 如果应用交互计数 > 1,则分配 1,否则分配 0。我尝试了以下操作但没有成功:
tibble(
var_1 = c(1, 2, 3, 2, 1),
var_2 = c(0, 0, 1, 4, 0),
var_3 = c(1, 1, 1, 0, 0)
) %>%
mutate_all(
funs(case_when(
. > 0 ~ 1,
. == 0 ~ …
Run Code Online (Sandbox Code Playgroud)