R 将数据帧中的特殊字符替换为正常变量数据帧为空

R 将数据帧中的特殊字符替换为正常变量数据帧为空,r,R,我是R新手,希望替换数据帧中的所有特殊字符 我通过stack查找了它,它部分工作。所有特殊字符均替换为正常对应字符,例如ä-->a。我遇到的问题是数据帧不再存在 替换功能 plain_text = function(x) { old1 <- "šžþàáâãäåçèéêëìíîïðñòóôõöùúûüý" new1 <- "szyaaaaaaceeeeiiiidnooooouuuuy" x = apply(x,2,function(

我是R新手,希望替换数据帧中的所有特殊字符

我通过stack查找了它,它部分工作。所有特殊字符均替换为正常对应字符,例如
ä-->a
。我遇到的问题是数据帧不再存在

替换功能

plain_text = function(x) {
  old1 <- "šžþàáâãäåçèéêëìíîïðñòóôõöùúûüý"
  new1 <- "szyaaaaaaceeeeiiiidnooooouuuuy"
  x = apply(x,2,function(x) gsub(old1,new1,x))
}
V1
1 c("Foo","Bar","Foo","Bar")
2 c("Foo","Bar","Foo","Bar")
3 c("fixed","fixed","not fixed","fixed")
数据帧

plain_text = function(x) {
  old1 <- "šžþàáâãäåçèéêëìíîïðñòóôõöùúûüý"
  new1 <- "szyaaaaaaceeeeiiiidnooooouuuuy"
  x = apply(x,2,function(x) gsub(old1,new1,x))
}
V1
1 c("Foo","Bar","Foo","Bar")
2 c("Foo","Bar","Foo","Bar")
3 c("fixed","fixed","not fixed","fixed")

不要使用
apply
,它可能(在这里)破坏
数据帧。在这种情况下,可以使用
chartr
。我提醒您,您的函数应该考虑列是否为
字符
(因为在数字列上固定字母会破坏它)

纯文本=函数(x){

old1感谢您的详细解释。它奏效了。我必须注意,我忘了提到数据帧完全是由字符串组成的,没有数字值。但最好记住这一点。更安全的编程。它总是
字符
,直到它不是:-)运行该测试并将其子集到
lappy
中是非常简单的我建议值得一试,以防止在任何数据管道中引入重大缺陷。很高兴它能起作用。