У меня есть df с двумя соответствующими столбцами с 1. словами различной длины и другим с 2.labels для слогов, оба являются факторными переменными.Теперь в третьем столбце (3. структура) я хочу добавить информацию о компонентах слога (гласный или согласный).Для этого я использую слово и метку слога как условия.
(word <- "dog", "parent", "extraordinary")
(labels <- "1", "2", "3","Final", "Mono")
(df <- data.frame(word,labels))
Я раньше использовал очень похожий код, и он работал, но теперь он больше не работает.Я недавно загрузил R (3.6.0) и не могу понять, в чем проблема.Я также обновил все пакеты, которые, по моему мнению, будут актуальны для этого, но все же не повезло.Я получаю только колонку только с резюме.Мой df также намного больше, хотя я не думаю, что это проблема.
Classes ‘rowwise_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 4458 obs. of 27 variables:
Вот выдержка из того, как выглядит мой код:
getStructure <- function(word, labels) {
if (str_detect(word, 'extraordinary') & labels == '2') {
return ('CCV')
} else {
return("CV")
}
}
df <- df %>%
rowwise() %>%
mutate(structure =getStructure(word, labels))
пример того, что мне нужно:
|word | labels | structure
---------------------------
|dog | Mono | CVC
|parent| 1 | CV
|parent| Final | CVC
Я хотел бы использовать функцию и указывать каждое слово и слог, когда это необходимо.После этого все остальное резюме.
Однако я получаю только один новый столбец с CV во всех строках, и это
Warning message:
In if (str_detect(word, "dog") & labels == "1") { :
the condition has length > 1 and only the first element will be used