Pet*_*e K 3 r switch-statement tidyverse
我找不到返回多个值(列)或仅返回一个小标题的方法case_when()。
input <- tibble(a = c(1, 2, 3))
input %>%
mutate(
case =
case_when(
a == 1 ~ tibble(x = "case1", y = "c1"),
a == 2 ~ tibble(x = "case2", y = "c2"),
a == 3 ~ tibble(x = "case3", y = "c3")
)
)
Run Code Online (Sandbox Code Playgroud)
如何根据某些正则表达式条件设置多个参数?
我们可以返回一个list列,因为mutate期望常规列是与原始数据的行数相同的vector列length
input %>%\n mutate(\n case =\n case_when(\n a == 1 ~ list(tibble(x = "case1", y = "c1")),\n a == 2 ~ list(tibble(x = "case2", y = "c2")),\n a == 3 ~ list(tibble(x = "case3", y = "c3"))\n )\n )\nRun Code Online (Sandbox Code Playgroud)\n-输出
\n# A tibble: 3 x 2\n# a case \n# <dbl> <list> \n#1 1 <tibble [1 \xc3\x97 2]>\n#2 2 <tibble [1 \xc3\x97 2]>\n#3 3 <tibble [1 \xc3\x97 2]>\nRun Code Online (Sandbox Code Playgroud)\n