创建一个函数来整理r中的任何文本

时间:2019-11-25 18:09:34

标签: r

我是r的新手,并试图创建一个正则表达式,该正则表达式将输入向量中超过5个字母的任何单词缩写(例如,饥饿会变得饥饿)。目前,我正在使用gsub,但是它将删除单词的前5个字母而不是五个字母,而不是后面的字母。

当前代码:

gsub(pattern = "[a-z]{5}", replacement =  ".", x = text_converter)

1 个答案:

答案 0 :(得分:0)

因此,这是在注释部分添加解释后的编辑版本: 我们需要以下功能:

  1. 您的字符串是“非常可靠的狗跳过篱笆”

  2. strsplit会在字符串中有空格时拆分该字符串,并为您提供这些单词的列表

    public static class PathHelper
    {
        public static string GetWindowsFileNameWithoutExtension(string filePath)
        {
            int backslashIndex = filePath.LastIndexOf('\\');
            int dotIndex = filePath.LastIndexOf('.');
    
            if (backslashIndex >= 0 && dotIndex >= 0 && dotIndex > backslashIndex)
            {
                return filePath.Substring(backslashIndex + 1, dotIndex - backslashIndex - 1);
            }
    
            if (dotIndex >= 0)
            {
                return filePath.Substring(0, dotIndex);
            }
    
            return Path.GetFileNameWithoutExtension(filePath);
        }
    }
    
  3. 对步骤2中的列表中的每个单词套用函数gsub(“([[a-zA-Z] {5})。*”,“ \ 1”,x)。每个单词中的字母不超过5个。

     [[1]]
       [1] "the"      "very"     "reliable" "dog"      "jumped"   "over"     "the"      "fences"
    
  4. 最终以折叠方式粘贴,将步骤3的字符串向量连接为字符串,然后split_reduce函数将此字符串作为最终输出返回。

     [[1]]
      [1] "the"   "very"  "relia" "dog"   "jumpe" "over"  "the"   "fence"
    

所以这是函数:

  [1] "the very relia dog jumpe over the fence"