在R中的整个data.frame上应用mgsub函数

拉迪斯拉夫·纳索

我经常使用充满特殊字符(feá,ľ,š,č,ť,ž,ý,á,í,é等)的表格。我发现了一个非常有用的函数mgsub,该函数可以同时进行多个字符串替换。我的向量效果很好,但是我正在努力将哪个函数应用于整个数据帧。

函数mgsub工作如下:

library(mgsub)
mgsub::mgsub("...A čo i tam dušu dáš v tom boji divokom: Mor ty len, a voľ nebyť, ako byť otrokom.",
             pattern = c(".","A","č","š","á",":",",","ľ","ť","M"," "),
         replacement = c("","a","c","s","a","","","","t","m",""), fixed = TRUE)
[1] "acoitamdusudasvtombojidivokommortylenavonebytakobytotrokom"

但是如何将此功能应用于整个data.frame?例如在此data.frame ...

my.df <- data.frame(v1 = c("...A čo i tam dušu","dáš v tom boji"),
                    v2 = c("divokom:","Mor ty len,"),
                    v3 = c("a voľ nebyť,","ako byť otrokom."))

                  v1          v2               v3
1 ...A čo i tam dušu    divokom:     a voľ nebyť,
2     dáš v tom boji Mor ty len, ako byť otrokom.

我试着愉快地玩。但它只给出错误...

data.frame(lapply(my.df, mgsub::mgsub,
                  pattern = c(".","A","č","š","á",":",",","ľ","ť","M"," "),
                  replacement = c("","a","c","s","a","","","","t","m",""), fixed = TRUE))
Error in nchar(string) : 'nchar()' requires a character vector

欢迎任何建议。

阿克伦

问题是这些列是factor并且mgsub需要character输入。根据?mgsub

字符串-寻求替换的字符向量


将所有列都转换为character

my.df[] <- lapply(my.df, as.character)

或使用 type.convert

my.df <- type.convert(my.df, as.is = TRUE) 

stringsAsFactors = FALSE在创建中data.frame作为默认选项时使用data.framestringsAsFactors = TRUE

my.df <- data.frame(v1 = c("...A čo i tam dušu","dáš v tom boji"),
                    v2 = c("divokom:","Mor ty len,"),
                    v3 = c("a voľ nebyť,","ako byť otrokom."), 
         stringsAsFactors = FALSE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 R 中 data.frame 的整个列的函数之间使用?

在R中的整个行上应用

在R中的data.frame的行上使用apply函数

在R中的矩阵上应用Apply函数

在 data.frame 上应用函数,并使用来自另一个 data.frame 的相同列进行变异

将函数应用于data.frame中的每个元素并返回data.frame

在R中的整个data.frame中查找子字符串/用新值替换完整字符串

将公式应用于R中的整个表

R:应用函数来计算整个列表中数据框的单个列的平均值

R:如何将函数应用于data.frame中的块并返回转换后的块?

将函数应用于 data.frame

在 R 中的列表上使用应用系列和多个函数

在 r 数据框中的行上应用函数

如何通过名称调用R函数中的data.frame

data.frame值作为r中函数的参数

R:在mapply中的函数内填充data.frame

在 pyspark 列中的列表上应用函数

在numpy数组中的多维上应用函数

R中data.frame上的迭代wilcox

如何将函数的结果应用于 data.frame (R) 的因子?

获取整个列的data.frame列内的向量的第n个元素-R

as.character()应用于data.frame的单个元素与data.frame的整个“行”时

将计算应用于data.frame值,存储在新的data.frame中-R

使用aggregate.data.frame函数汇总r data.frame中的数据

如何在整个data.frame中搜索字符串

data.table在R中逐行应用函数

将函数应用于R data.frame中另一列的值范围以便保持向量化的最佳方法是什么?

应用使用多列作为参数的函数,函数返回一个data.frame

在整个R Shiny应用程序中更改字体系列:CSS / HTML