【发布时间】:2014-01-10 15:05:44
【问题描述】:
我在匹配表中的两行时遇到问题
r1 <- "ghuytut3jilujshdftgu"
r2 <- "ghuytuthjilujshdftgu"
df2 <- as.data.frame(rbind(unlist(strsplit(r1, "")), unlist(strsplit(r2, ""))))
我想指定一个列号(比如第 5 列)并找出两个序列相同的列左右各有多少列。我想要一种机制,从中心开始逐个字符(逐列)比较这两个字符串并向外扫描,返回匹配字符的数量,直到遇到第一个差异
【问题讨论】:
-
所以...
ident<-TRUE; while(ident) { ident<-df2[1,5-j]==df2[2,5+j];j<j+1}?然后j会告诉你(或j-1)你在不匹配之前走了多远。或者,拆分行、反转 LH 部分的顺序以及做一些字符串函数魔术可能更容易。 -
你能不能更详细地解释一下答案的最后一点/
-
好吧,就像
r1right<-df2[1,1:5] ; r1left <- df1[1,6:(dim(df2)[2])]。然后r1left<-rev(r1left),然后找到或编写一些函数来计算有多少个字符是相同的 (r1left[j]==r1right[j]) 。可能不值得努力:-) -
你为什么要转发the same question,而且你评论的一个问题已经回答了?