SQL的LIKE’description%’语句的R等价物是什么?
发布时间:2020-12-12 16:27:51 所属栏目:MsSql教程 来源:网络整理
导读:不知道怎么回事,但是我想在几个字符串元素中搜索一个术语.这是我的代码看起来(但错误): inplay = vector(length=nrow(des))for (ii in 1:nrow(des)) { if (des[ii] = 'In play%') inplay[ii] = 1 else inplay[ii] = 0} des是一个存储字符串的矢量,如“Swingi
不知道怎么回事,但是我想在几个字符串元素中搜索一个术语.这是我的代码看起来(但错误):
inplay = vector(length=nrow(des)) for (ii in 1:nrow(des)) { if (des[ii] = 'In play%') inplay[ii] = 1 else inplay[ii] = 0 } des是一个存储字符串的矢量,如“Swinging Strike”,“In play(run(s))”,“In play(out(s)recording)”等等.我想要播放的是1s和0s与des矢量相对应的矢量,其中1s在播放中表示des值在其中为“In play%”,否则为0. 我相信第三行是不正确的,因为所有这一切都是返回0的向量,在最后一个元素中有1. 提前致谢! 解决方法R类似于SQL的LIKE只是R的普通索引语法.“LIKE”操作符通过将指定列中的字符串值与用户提供的模式相匹配来从表中选择数据行 > # create a data frame having a character column > clrs = c("blue","black","brown","beige","berry","bronze","blue-green","blueberry") > dfx = data.frame(Velocity=sample(100,8),Colors=clrs) > dfx Velocity Colors 1 90 blue 2 94 black 3 71 brown 4 36 beige 5 75 berry 6 2 bronze 7 89 blue-green 8 93 blueberry > # create a pattern to use (the same as you would do when using the LIKE operator) > ptn = '^be.*?' # gets beige and berry but not blueberry > # execute a pattern-matching function on your data to create an index vector > ndx = grep(ptn,dfx$Colors,perl=T) > # use this index vector to extract the rows you want from the data frome: > selected_rows = dfx[ndx,] > selected_rows Velocity Colors 4 36 beige 5 75 berry 在SQL中,这将是: SELECT * FROM dfx WHERE Colors LIKE ptn3 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |