【发布时间】:2023-04-06 22:09:01
【问题描述】:
可能是一个愚蠢的问题,我想在一个包含多个条件的小标题中重新编码多个变量。
数据示例:
library(tidyverse)
s <- matrix(sample(1:15, 20, replace = TRUE), ncol = 4)
s <- as_tibble(s)
这给出了这样的东西:
# A tibble: 5 x 4
V1 V2 V3 V4
<int> <int> <int> <int>
1 11 2 5 14
2 5 4 15 5
3 13 15 2 5
4 7 13 15 11
5 11 5 12 3
我想在此条件下重新编码 V1、V2、V3,并使 V4 保持不变: 如果值小于或等于 5 得到 1,如果值大于 5 但小于或等于 10 得到 2,最后如果值大于 10 得到 3。
输出应如下所示:
# A tibble: 5 x 4
V1 V2 V3 V4
<int> <int> <int> <int>
1 3 1 1 14
2 1 1 3 5
3 3 3 1 5
4 2 3 3 11
5 3 1 3 3
我知道 apply、sapply、vapply,但我想以优雅的方式使用 tidyverse 包中的函数重新编码。
提前致谢!
【问题讨论】:
-
看看 dplyr 中的
mutate_at。它旨在将相同的功能应用于您可以随意选择的多个列。