我正在思考下面的问题,但没有evail:
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
这个有什么功能吗?
2条答案
按热度按时间sqxo8psd1#
这里有一个可能的解决方案,您可以修改它以满足您的需要。
一些注意事项:
rownames()
,特别是在最后一个阶段,所以这取决于您是否愿意将行名称复制为新变量。函数如下。
请注意,该函数需要一个名为
RowNames
的列,因此我们将创建该列,然后测试该函数。wfsdck302#
这适用于您的示例,但可能需要调整真实的情况: