Это мой набор данных со следующими значениями:
df=as.data.table(c("hello","name","age","hey","apron","street","night","soap"))
colnames(df)="V1"
Output:
V1
1 2
2 4
3 1
4 2
5 1
6 3
7 4
8 3
Это делается только для 1 буквы, т. Е. A или h или s или n
df %>%
mutate(V1 = case_when(startsWith(df$V1, "a") == TRUE~ '1',
startsWith(df$V1, "h") == TRUE~ '2',
startsWith(df$V1, "s") == TRUE~ '3',
startsWith(df$V1, "n") == TRUE~ '4'))
V1 V2
1 hello 2
2 name 4
3 age 1
4 hey 2
5 apron 1
6 street 3
7 night 4
8 soap 3
Я хочу заменить несколькозначения: например, я хочу заменить слова в диапазоне ах на 1 Здесь я получаю значения NA вместо
df %>%
mutate(V2 = case_when(startsWith(df$V1, letters[1:8]) == TRUE~ '1',
startsWith(df$V1, "s") == TRUE~ '3',
startsWith(df$V1, "n") == TRUE~ '4'))
V1 V2
1 hello <NA>
2 name 4
3 age <NA>
4 hey <NA>
5 apron <NA>
6 street 3
7 night 4
8 soap 3