如果某些列包含 R 中的字符串,则变异变量
Mutate variable if certain columns contain string in R
我已经为这个数据集苦苦挣扎了几个小时。我已经搜索了几个小时并尝试了很多东西,但我失败了(我是 R 的新手)。所以我真的希望你们能帮助我。
我有这个数据集:
df <- data.frame(ID = c(1,2,3,4,5), a.1 = c("A", "C", "C", "B","D"), a.2 = c("C", "C", "D", "A","B"), b.1 = c("D", "C", "A", "B","D"), b.2 = c("D", "B", "C", "A","A"))
ID a.1 a.2 b.1 b.2
1 1 A C D D
2 2 C C C B
3 3 C D A C
4 4 B A B A
5 5 D B D A
我想将一个名为“result”的新变量变为:
- 如果其中一列带有前缀“a”,则为“1”。包含“A”或“B”
- “0”,如果其中一个列带有前缀“a”。不包含“A”或“B”
所以我会得到以下结果:
ID a.1 a.2 b.1 b.2 result
1 1 A C D D 1
2 2 C C C B 0
3 3 C D A C 0
4 4 B A B A 1
5 5 D B D A 1
在我的真实数据集中,我有 100 个前缀为“a.”的变量,所以我不能 select 单独列。
希望大家帮帮我!
非常感谢!
library(dplyr)
df %>%
rowwise() %>%
mutate(res = any(c_across(starts_with("a.")) %in% c("A", "B")) * 1L)
#> # A tibble: 5 x 6
#> # Rowwise:
#> ID a.1 a.2 b.1 b.2 res
#> <dbl> <chr> <chr> <chr> <chr> <int>
#> 1 1 A C D D 1
#> 2 2 C C C B 0
#> 3 3 C D A C 0
#> 4 4 B A B A 1
#> 5 5 D B D A 1
我已经为这个数据集苦苦挣扎了几个小时。我已经搜索了几个小时并尝试了很多东西,但我失败了(我是 R 的新手)。所以我真的希望你们能帮助我。
我有这个数据集:
df <- data.frame(ID = c(1,2,3,4,5), a.1 = c("A", "C", "C", "B","D"), a.2 = c("C", "C", "D", "A","B"), b.1 = c("D", "C", "A", "B","D"), b.2 = c("D", "B", "C", "A","A"))
ID a.1 a.2 b.1 b.2
1 1 A C D D
2 2 C C C B
3 3 C D A C
4 4 B A B A
5 5 D B D A
我想将一个名为“result”的新变量变为:
- 如果其中一列带有前缀“a”,则为“1”。包含“A”或“B”
- “0”,如果其中一个列带有前缀“a”。不包含“A”或“B”
所以我会得到以下结果:
ID a.1 a.2 b.1 b.2 result
1 1 A C D D 1
2 2 C C C B 0
3 3 C D A C 0
4 4 B A B A 1
5 5 D B D A 1
在我的真实数据集中,我有 100 个前缀为“a.”的变量,所以我不能 select 单独列。
希望大家帮帮我!
非常感谢!
library(dplyr)
df %>%
rowwise() %>%
mutate(res = any(c_across(starts_with("a.")) %in% c("A", "B")) * 1L)
#> # A tibble: 5 x 6
#> # Rowwise:
#> ID a.1 a.2 b.1 b.2 res
#> <dbl> <chr> <chr> <chr> <chr> <int>
#> 1 1 A C D D 1
#> 2 2 C C C B 0
#> 3 3 C D A C 0
#> 4 4 B A B A 1
#> 5 5 D B D A 1