我有以下問題大拇哥各地rownames,但沒有evail:合計值通過部分匹配R中
d <- data.frame(value = 1:4, row.names = c("abc", "abcd", "ef", "gh"))
value
abc 1
abcd 2
ef 3
gh 4
l <- nrow(d)
wordmat <- matrix(rep(NA, l^2), l, l, dimnames = list(row.names(d), row.names(d)))
for (i in 1:ncol(wordmat)) {
rid <- agrep(colnames(wordmat)[i], rownames(wordmat), max = 0)
d$matchid[i] <- paste(rid, collapse = ";")
}
# desired output:
(d_agg <- data.frame(value = c(3, 3, 4), row.names = c("abc;abcd", "ef", "gh")))
value
abc;abcd 3
ef 3
gh 4
是有這樣的功能?
什麼是您的匹配標準?例如,如果三個行的名字是'abc','abd','abcd',你會合並它們嗎? –
說,所有與abc ..但是,實際上我想能夠定製這與像agrep max.distance參數,或類似的東西.. – Kay
你可以從adist(rownames(d))工作。這會給你所有的rownames對之間的距離矩陣,你可以使用它來聚集到一定的距離。你需要擺弄cost =參數才能得到你想要的。 – dcarlson