library(dplyr)
df <- tibble(Letters = c("A", "B", "C", "C", "C", "D", "D", "D", "E", "E", "E"))
meta <- c("foo", "bar", "baz")
Letters
<chr>
1 A
2 B
3 C
4 C
5 C
6 D
7 D
8 D
9 E
10 E
11 E
在这里,我想改变字符向量
meta
在信上
C
,
D
,
E
以向量的特定顺序。
我试过这样的方法:
df <- df %>% mutate(New = case_when(Letters %in% c("C", "D", "E") ~
meta %>% rep_len(nrow(df)),
TRUE ~ NA_character_))
然而,这开始了数据帧顶部的矢量化过程,并且
C
,
D
,
e
,按以下顺序填写
baz
,
foo
,
bar
而不是
福
,
酒吧
,
巴兹
.
# A tibble: 11 x 2
Letters New
<chr> <chr>
1 A NA
2 B NA
3 C baz
4 C foo
5 C bar
6 D baz
7 D foo
8 D bar
9 E baz
10 E foo
11 E bar
期望输出:
Letters New
<chr> <chr>
1 A NA
2 B NA
3 C foo
4 C bar
5 C baz
6 D foo
7 D bar
8 D baz
9 E foo
10 E bar
11 E baz