楼主: JoeZhouzzz
4034 4

[有偿编程] 求助!R语言如何替换另外一段字符 [推广有奖]

  • 0关注
  • 0粉丝

VIP1

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
2111 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
3
精华
0
在线时间
2 小时
注册时间
2017-1-31
最后登录
2017-1-31

楼主
JoeZhouzzz 发表于 2017-1-31 01:31:23 |AI写论文
500论坛币
想问一下 如何实现一下的replace_one_phrase 和 replace_phrases 这两段代码


replace_one_phrase <- function (text, phrase)
> t <- c("I","like","hot","dogs","a","lot","hot","dogs","forever")
> t
[1] "I" "like" "hot" "dogs" "a" "lot" "hot"
[8] "dogs" "forever"
> replace_one_phrase(t,c("hot","dogs"))
[1] "I" "like" "hot_dogs" "a" "lot" "hot_dogs" "forever"

> replace_phrases (c("ab","pq","xy"), list(c("ab","pq"),c("pq","xy")))
[1] "ab_pq" "xy"

最佳答案

关键词:r语言入门 R语言 replace Forever Phrases forever 如何

沙发
ntsean 发表于 2017-1-31 01:31:24
  1. t <- c("I","like","hot","dogs","a","lot","hot","dogs","forever")

  2. replace_one_phrase <- function(x, phrase) {
  3.   if (length(x) < length(phrase)) return(x)
  4.   n <- length(phrase)
  5.   if (identical(x[1:n], phrase)) {
  6.     return(c(paste(phrase, collapse = "_"), replace_one_phrase(x[-(1:n)], phrase)))
  7.   }
  8.   return(c(x[1], replace_one_phrase(x[-1], phrase)))
  9. }

  10. replace_one_phrase(t, c("hot", "dogs"))

  11. replace_phrases <- function(x, phrases) {
  12.   for (phrase in phrases) {
  13.     x <- replace_one_phrase(x, phrase)
  14.   }
  15.   x
  16. }

  17. replace_phrases (c("ab","pq","xy"), list(c("ab","pq"),c("pq","xy")))
复制代码

藤椅
czrdiao 发表于 2017-1-31 09:35:25
t = c("I","like","hot","dogs","a","lot","hot","dogs","forever")
replace_phrases <- function(vec, ph){
  while(1){
    ind = c()
    l = 0
    for(j in 1:length(ph)){
      ind1 = match(ph[[j]], vec)
      if(all(!is.na(ind1))){
        if(length(ind) == 0 || ind[1] > ind1[1]){
          ind = ind1
          l = ph[[j]]
        }
      }
    }
    if(length(ind) == 0){
      return(vec)
      break
    }else{
      vec[ind[1]] = paste(l, collapse = '_')
      vec = vec[-ind[2:length(ind)]]
    }
  }
}

replace_phrases(t, list(c("hot", "dogs")))
replace_phrases(c("ab","pq","xy"), list(c("ab","pq"),c("pq","xy")))

板凳
JoeZhouzzz 发表于 2017-1-31 20:59:36
十分感谢

报纸
bytang 发表于 2017-2-28 16:48:21
好,谢谢楼主推荐!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 11:02