Работая над текстовым фреймом данных, я заметил, что функции str_remove_all и modify работают вместе только тогда, когда я создаю функцию, использующую str_remove_all, и мне интересно, сможет ли кто-нибудь объяснить, почему это так. Например:
favoriteFruit <- c("apple", "banana", "favorite is banana", "strawberry", "favorite is apple")
favoriteVeg <- c("carrot", "carrot", "celery", "favorite is celery", "corn")
name <- c("Carlie", "Daniel", "Ellen", "Theo", "CiCi")
df <- as.data.frame(cbind(name, favoriteFruit, favoriteVeg), stringsAsFactors = FALSE)
head(df)
name favoriteFruit favoriteVeg
1 Carlie apple carrot
2 Daniel banana carrot
3 Ellen favorite is banana celery
4 Theo strawberry favorite is celery
5 CiCi favorite is apple corn
Теперь, если я хочу просмотреть фрейм данных и удалить все экземпляры «любимого есть», я могу использовать следующее:
cleanerFunc <- function(column) {
new <- str_remove_all(column, "favorite is ")
return(new)
}
df2 <- modify(df, cleanerFunc) %>%
as.data.frame(stringsAsFactors = FALSE)
head(df2)
name favoriteFruit favoriteVeg
1 Carlie apple carrot
2 Daniel banana carrot
3 Ellen banana celery
4 Theo strawberry celery
5 CiCi apple corn
Создание этой функции похоже на шаг, который я должен пропустить, поскольку функция делает только одно (то есть говорит R использовать одну другую функцию). Мне кажется, что я должен иметь возможность пропустить создание функции и использовать str_remove_all напрямую с модификацией, но все мои попытки сделать это возвращают ошибки или пустые фреймы данных (см. Ниже).
Очевидно, что создание функции - довольно простой обходной путь, поэтому я в основном спрашиваю, потому что хочу знать, что я неправильно понял, что заставило меня подумать, что я могу пропустить этот шаг. Кто-нибудь может объяснить, что изменится создание этого cleanerFunc?
Другие способы, которыми я пытался очистить свой фрейм данных:
df3 <- modify(df, str_remove_all("favorite is "))
df4 <- modify(df, str_remove_all(., "favorite is"))
df5 <- modify(df, str_remove_all(df, "favorite is"))
df6 <- df %>%
modify(str_remove_all(., "favorite is"))
df7 <- df %>%
modify(str_remove_all(., "favorite is")) %>%
as.data.frame(stringsAsFactors = FALSE)