str_replace in a data frame?

问题描述 投票:0回答:1

在我的R代码中,我试图将换行符插入数据集中某列的一些较长的字符串值中。代码会运行,但是输出始终与原始字符串相同,并且不会发生任何更改。当我将列作为向量拉出并应用相同的代码时,它完全可以正常工作。我对R还是很陌生,删除列以应用函数然后将其重新附加到原始数据帧的过程似乎相当复杂。是否有成功的方法可以仅在数据框中执行此操作?

library(tidyverse)
library(stringr)

dog_descriptions2 <-
  dog_descriptions %>% 
  mutate(breed_primary2 = str_replace_all(breed_primary, c("Pit Bull Terrier" = "Pit Bull\nTerrier", "Labrador Retriever" = "Labrador\nRetriever", "Border Collie" = "Border\nCollie")))

感谢您的帮助!

r stringr tidy
1个回答
0
投票

我不确定我是否将str_replace_all用于此任务。相反,我建议在recode()中使用recode_factor()dplyr

library(tidyverse)

# If breed_primary is a character
new.dog.df <- dog_descriptions2 %>%
   mutate(breed_primary2 = recode(breed_primary, 
                                  `Pit Bull Terrier` = "Pit Bull\nTerrier",
                                  `Labrador Retriever` = "Labrador\nRetriever", 
                                  `Border Collie` = "Border\nCollie")

# If breed_primary is a factor
new.dog.df <- dog_descriptions2 %>%
   mutate(breed_primary2 = recode_factor(breed_primary, 
                                  `Pit Bull Terrier` = "Pit Bull\nTerrier",
                                  `Labrador Retriever` = "Labrador\nRetriever", 
                                  `Border Collie` = "Border\nCollie")
© www.soinside.com 2019 - 2024. All rights reserved.