Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据帧中的str_替换?_R_Stringr_Tidy - Fatal编程技术网

数据帧中的str_替换?

数据帧中的str_替换?,r,stringr,tidy,R,Stringr,Tidy,在我的R代码中,我试图在数据集中某一列的几个较长字符串值中插入一个换行符。代码运行,但输出始终与原始字符串相同,没有发生任何更改。当我将列作为向量拉出并应用相同的代码时,它完全可以正常工作。我对R还是新手,删除一列以应用函数,然后将其重新附加到原始数据帧的过程似乎相当复杂。是否有一种成功的方法可以在数据框架内实现这一点 library(tidyverse) library(stringr) dog_descriptions2 <- dog_descriptions %>%

在我的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")))
库(tidyverse)
图书馆(stringr)
狗描述2%
变异(品种2=str\U替换所有品种(品种c(“比特斗牛犬”=“比特斗牛犬”=“比特斗牛犬”;“拉布拉多猎犬”=“拉布拉多猎犬”;“边境牧羊犬”=“边境牧羊犬”))

谢谢你的帮助

我不确定我是否会使用
str\u replace\u all
来完成此任务。相反,我建议在
dplyr
中使用
recode()
recode\u factor()

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")
库(tidyverse)
#如果你是一个角色
new.dog.df%
变异(品种2=重新编码(品种2),
`比特斗牛犬`=“比特斗牛犬\n猎犬”,
`拉布拉多猎犬“=”拉布拉多\n猎犬“,
`边境牧羊犬“=”边境牧羊犬“
#如果品种是一个主要因素
new.dog.df%
变异(品种2=重新编码因子(品种2),
`比特斗牛犬`=“比特斗牛犬\n猎犬”,
`拉布拉多猎犬“=”拉布拉多\n猎犬“,
`边境牧羊犬“=”边境牧羊犬“

我不确定我会使用
str\u replace\u all
来完成此任务。相反,我建议在
dplyr
中使用
recode()
recode\u factor()

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")
库(tidyverse)
#如果你是一个角色
new.dog.df%
变异(品种2=重新编码(品种2),
`比特斗牛犬`=“比特斗牛犬\n猎犬”,
`拉布拉多猎犬“=”拉布拉多\n猎犬“,
`边境牧羊犬“=”边境牧羊犬“
#如果品种是一个主要因素
new.dog.df%
变异(品种2=重新编码因子(品种2),
`比特斗牛犬`=“比特斗牛犬\n猎犬”,
`拉布拉多猎犬“=”拉布拉多\n猎犬“,
`边境牧羊犬“=”边境牧羊犬“

我会尝试使用
case\u when()


这种方法取决于您实际拥有并愿意输入的案例数量,但如果没有关于您的数据的更多信息,很难说清楚。

我会尝试使用
case\u when()


这种方法取决于您实际拥有并愿意输入的案例数量,但如果没有关于数据的更多信息,很难说清楚。

查看原始数据帧和输出数据帧可能会很有用,因为您的代码在虚拟数据帧上对我来说非常有效:

dog\u说明dog\u说明2
>#品种\初级数量\腿部\品种\初级2
>#1只比特斗牛梗4只比特斗牛梗\n猎犬
>#2拉布拉多猎犬4拉布拉多猎犬\n猎犬
>#3边境牧羊犬4边境牧羊犬

查看原始数据帧和输出数据帧可能会很有用,因为您的代码在虚拟数据帧上非常适合我:

dog\u说明dog\u说明2
>#品种\初级数量\腿部\品种\初级2
>#1只比特斗牛梗4只比特斗牛梗\n猎犬
>#2拉布拉多猎犬4拉布拉多猎犬\n猎犬
>#3边境牧羊犬4边境牧羊犬

谢谢你的帮助!我觉得自己像个傻瓜。我总是使用View()检查代码的输出,而不是像打印对象那样的另一种方法。代码实际上工作正常,但在View()中,字符串没有显示“\n”换行。我想是学习新编程语言的尝试。

谢谢你的帮助!我感觉自己像个傻瓜。我总是用View()检查代码的输出,而不是像打印对象那样的其他方法。代码实际上工作正常,但在View()中,字符串没有显示“\n”对于换行符。我想学习一种新编程语言的尝试。

你完全正确!我意识到使用View()检查输出时并没有在字符串中显示“\n”,但在使用str()时却显示了“\n”。我觉得自己像个傻瓜,但至少代码现在可以工作了。谢谢!你完全正确!我意识到使用View()时检查我的输出时,字符串中没有显示“\n”,但我使用str()时显示了“\n”。我觉得自己像个哑巴,但至少代码现在可以工作了。谢谢!谢谢!这是正确的。我使用View()检查我的输出,它没有显示“\n”换行符。唉……花了太长时间才弄清楚。谢谢!这是正确的。我使用的是View()检查没有显示“\n”换行符的输出。叹气…花了太长时间才弄清楚。