根据多个条件拆分字符串

时间:2016-03-09 18:26:07

标签: r

如果我有字符串,例如:

example 1: email:none@blank.com,username:noneusername, token:nonetoken21309r9023, user_id:nonuserid

example 2: username:slkfsoi,email:kljasdf@asflk.com,username:oiwoie,token:asfkjsdf0

example 3: email:slfkjsaf@asfdlk.com,user_id:lkasflk

我想根据电子邮件,用户名,令牌和user_id进行拆分。在某些情况下,并非所有4个都存在。另外,在其他情况下,字符串可以包含多个实例(电子邮件,令牌,电子邮件,user_id,令牌)。在这种情况下,我想采取每个的第一个实例。

这里是我对R的所作所为,但是,如果我在循环中使用它,当数据帧中有数千个字符串时效率不高。我尝试使用此函数与apply,但是,它不起作用。我认为这是因为我的功能没有矢量化?

match_value <- function(x,z){
  b <- head(grep(z,unlist(strsplit(x,","))),1)
  c <- strsplit(x, ",")
  d <- unlist(c)[b]
  e <- gsub(z,"",d)
  if((length(e) == 0) && (typeof(e) == "character")){
   e = ""
  }
  return(e)
}

在上面的示例中,我将调用函数,例如其中x = dataframe column of string value,z = string我想匹配,例如email:或token:。

谢谢!

1 个答案:

答案 0 :(得分:1)

我会使用您的方法,但使用 mVideoView = ((DMWebVideoView) findViewById(R.id.dmWebVideoView)); mVideoView.setVideoId("x26hv6c"); // here i am passing id from listview through intent. mVideoView.setAutoPlay(true); 和正则表达式

gsub