如何使用R

时间:2018-12-14 03:27:12

标签: r regex dataframe search

我在R中执行“标题搜索器”功能,遇到困难。

我的计划是这样的。

  1. 从用户那里接收标题名称。

    search_keyword = readline(prompt = "Books Title")

  2. 基于search_keyword,函数会在数据库中四处查找。

  3. ,它从数据库的每一列中返回标题的“全名”及其“等级”。

数据库的形状如下所示。

排名| ________ 1月___________ || _____________ 2月| ....

1 |您可以进行编码:很容易。文章=(修订版。)

2 |文章=(修订版。) (新)程序员的故事

3 | .................................................您可以进行编码:很简单

以下是我想要的结果。

  • search_keyword =“文章”
  • 然后,它返回...

    输入关键字:“文章”

    搜索到:“文章=(修订版。)”

    排名变更[文章=(修订版)]

    Jan:2

    2月:1 .. .. ..

    (如果9月没有排名,

    sep:超出图表)

就我而言,我的国家/地区的字词没有大写字母差异(没有大写字母概念)

样本数据如下图所示。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用dplyrtidyr软件包来实现此目的。请参见下面的代码:

# Sample input
df<-data.frame(rank=1:3,
               Jan=factor(c('You can do Coding : it is easy','Article = (revised version.)','The Story of programmers')),
               Feb=factor(c('You can do Coding : it is easy','The Story of programmers','Article = (revised version.)'))
               )
  rank                            Jan                            Feb
#1    1 You can do Coding : it is easy You can do Coding : it is easy
#2    2   Article = (revised version.)       The Story of programmers
#3    3       The Story of programmers   Article = (revised version.)
library(dplyr)
library(tidyr)

search_term<-'You'
df %>%
  gather('month','title',Jan:Feb) %>%
# rank month                          title
# 1    1   Jan You can do Coding : it is easy
# 2    2   Jan   Article = (revised version.)
# 3    3   Jan       The Story of programmers
# 4    1   Feb You can do Coding : it is easy
# 5    2   Feb       The Story of programmers
# 6    3   Feb   Article = (revised version.)
  filter(grepl(search_term,title))
# rank month                        title
# 1    2   Jan Article = (revised version.)
# 2    3   Feb Article = (revised version.)