gpt4 book ai didi

regex - R:替换数据框多列中的特殊字符

转载 作者:行者123 更新时间:2023-12-02 06:17:38 25 4
gpt4 key购买 nike

我尝试用“oe”替换数据框中的德语特殊字符“ö”。该字符出现在多列中,因此我希望能够通过不必指定单独的列来一次完成所有这些操作。这是数据框的一个小例子

data <- data.frame(a=c("aö","ab","ac"),b=c("bö","bb","ab"),c=c("öc","öb","acö"))

我试过了:

data[data=="ö"]<-"oe"

但这不起作用,因为我需要在这里使用正则表达式。但是当我尝试时:

data[grepl("ö",data)]<-"oe"

我没有得到我想要的。最后的数据框应该是这样的:

> data
a b c
1 aoe boe oec
2 ab bb oeb
3 ac ab acoe
>

该文件是我通过read.csv 导入的csv 导入。但是,似乎没有选项可以更改以使用 import 语句修复此问题。我如何获得预期的结果?

最佳答案

这是一种方法:

data <- apply(data,2,function(x) gsub("ö",'oe',x))

解释:

你的 grepl 不起作用,因为 grepl 只是返回一个 bool 矩阵 (TRUE/FALSE) 对应到正则表达式匹配的数据框中的元素。然后赋值所做的不仅仅是替换你想要替换的字符,而是整个字符串。要替换字符串的部分,您需要sub(如果您只想在每个字符串中替换一次)或gsub(如果您想要全部出现替换)。要将其应用于每一列,您可以使用 apply 遍历这些列。

关于regex - R:替换数据框多列中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22656676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com