我有这样的事情:
#Change deg
x1 <- gsub("°","°",x1)
#Change ohm
x1 <- gsub("Ω","Ω",x1)
#change divide
x1 <- gsub("÷","÷",x1)
#change minus
x1 <- gsub("−","-",x1)
但是有很多值,我不想在r脚本中编写所有内容。我有一张桌子,看起来像这样
&newtonm; N m
® ®
° °
− -
如何查找表并在R脚本中进行更改?
答案 0 :(得分:4)
以下是使用Reduce()
:
lookup <- data.frame(pat=c('&newtonm;','®','°','−'),rep=c('N m','®','°','-'),stringsAsFactors=F);
lookup;
## pat rep
## 1 &newtonm; N m
## 2 ® ®
## 3 ° °
## 4 − -
entityrep <- function(x) Reduce(function(x,r) gsub(lookup$pat[r],lookup$rep[r],x,fixed=T),seq_len(nrow(lookup)),x);
x1 <- 'test &newtonm; ® ° − test';
entityrep(x1);
## [1] "test N m ® ° - test"