【发布时间】:2014-07-26 15:25:20
【问题描述】:
我用来查找两个字符串之间差异的函数(found on the R-help website):
X <- "abcdefg" ; Y <- "aBcDEfg"
diff <- function(X,Y){
X0 <- unlist(strsplit(X,split="")) ## Nasty but necessary!
Y0 <- unlist(strsplit(Y,split="")) ## ...
ix <- which(X0 != Y0)
cbind(ix,X0[ix],Y0[ix])
}
diff(X,Y)
ix
[1,] "2" "b" "B"
[2,] "4" "d" "D"
[3,] "5" "e" "E"
我需要比较的数据框状态中的列:
grint <-
c("45CCBC44B", "45CCBC44B", "45CCBC44B", "45CCBC44B", "45CCBC44B",
"45CCBC44B", "45CCBC44B", "45CCBC44B", "45CCBC44B", "<5CCBC:4B",
"<5CCBC:4B", "<5CCBC:4B", "<<CCBC::B", "<<GGBG::E", "<<GGBG::E",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "CC11B1CCE",
"CC11B1CCE", "CC55B1CCE", "55CCBC44B", "55CCBC44B", "55CCBC44B",
"55CCBC44B", "55CCBC44B", "55CCBC44B", "G1CCBC1GB", "G1CCBC1GB",
"G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB",
"G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB", "G1CCBC1GB",
"G1CCBC1GB", "G1CCBC1GB", "91CCBC11B", "01CCBC11B", "01CCBC11B",
"01CCBC11B", "01CCBC11B", "11CCBC11B", "11CCBC11B", "11CCBC11B",
"15CCBC11B", "15CCBC11B", "15CCBC11B", "15CCBC11B", "15CCBC11B",
"15CCBC11B", "15CCBC11B", "15CCBC11B", "15CCBC11B", "15CCBC11B",
"55CCBC11B", "55CCBC11B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B",
"55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B", "55CCBC41B"
)
我需要连续比较列中的值,这意味着它可以找到发生的差异并比较两个字符串。例如grint[9] 和grint[10] 不同并显示出来。
我尝试使用lapply 函数来完成一个循环以应用于每个字符串以查找每个更改,但我失败了:
a <-grint[i]
b <-grint[i+1]
lapply(grint,diff(a,b))
错误:
Error in match.fun(FUN) :
'diff(a, b)' is not a function, character or symbol
所以我想知道我应该怎么做?非常感谢!
【问题讨论】:
-
试试
diff(grint[-1], grint[-length(grint)]) -
我想可以肯定地说您正在寻找像 the code where you found it on the R help site 产生的输出。
-
哦,我应该添加链接。谢谢提醒,下次我会记住的!