Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中要求和排除数据帧中的特定术语?_R - Fatal编程技术网

如何在R中要求和排除数据帧中的特定术语?

如何在R中要求和排除数据帧中的特定术语?,r,R,我有三个数据帧: 单词和短语的输入集(“输入”) require一组单词(“require”) 一组排除词(“排除”) 它们都是数据帧 输入 kw 1 baseball 2 football 3 tennis 4 basketball 5 basket ball 6 volleyball 7 base ball 8 women's golf 9 men's golf 10 golfing 要求 kw 1 ball 2 golf kw 1 basket 2 volley

我有三个数据帧:

  • 单词和短语的输入集(“输入”)
  • require一组单词(“require”)
  • 一组排除词(“排除”)
  • 它们都是数据帧

    输入

          kw
    1 baseball
    2 football
    3 tennis
    4 basketball
    5 basket ball
    6 volleyball
    7 base ball
    8 women's golf
    9 men's golf
    10 golfing
    
    要求

        kw
    1 ball
    2 golf
    
      kw
    1 basket
    2 volley
    
    排除

        kw
    1 ball
    2 golf
    
      kw
    1 basket
    2 volley
    
    我希望输出为:

          kw
    1 baseball
    2 football
    3 base ball
    4 women's golf
    5 mens golf
    6 golfing
    

    我怎么用R写这个?当我使用grep时,我会一遍又一遍地重复代码。这应该很容易迭代。非常感谢您的帮助。

    您可以将两条grep语句组合在一起。比如说

    subset(dd, grepl("ball|golf",kw) & !grepl("basket|volley", kw)) 
    
    使用示例输入

    dd<-read.table(text="kw
    baseball
    football
    tennis
    basketball
    basket ball
    volleyball
    base ball
    women's golf
    men's golf
    golfing", sep="\t", quote="", header=T)
    

    谢谢你,弗利克先生。我正在从.csv文件中提取数据帧。如何将它们组合到grep语句中?我猜
    粘贴(需要$kw,collapse=“|”)
    。请注意,grep需要一个有效的正则表达式。不幸的是,它不起作用。当我键入:final=subset(input,grepl(粘贴(require$kw,collapse=“|”)和!grepl(粘贴(exclude$kw,collapse=“|”)时,我得到以下错误消息:grepl中的错误(粘贴(require$kw,collapse=“|”):缺少参数“x”,没有默认值您没有将
    kw
    列传递给
    grepl
    函数。你只通过了一个模式。仔细看看我的例子。一如既往地感谢Flick先生!