在R中使用interaction()函数时,13和31被认为是不同的相互作用。我想把它们看成是一样的。
factor1 <- c(rep(1,3), rep(2,3), rep(3,3))
factor2 <- c(rep(c(1,2,3), 3))
combined <- interaction(factor1, factor2, sep = "")合并后的结果如下:
> combined
[1] 11 12 13 21 22 23 31 32 33
Levels: 11 21 31 12 22 32 13 23 33但我想让它看起来像这样
> combined
[1] 11 12 13 12 22 23 13 23 33
Levels: 11 12 13 22 23 33有什么优雅的方法吗?
发布于 2015-11-15 01:50:36
先排序,然后降低级别:
f1 = pmin(factor1, factor2)
f2 = pmax(factor1, factor2)
droplevels(interaction(f1, f2, sep=""))
# [1] 11 12 13 12 22 23 13 23 33
# Levels: 11 12 22 13 23 33如果您对字符串结果没有意见,paste0(f1,f2)就更简单了。
https://stackoverflow.com/questions/33715496
复制相似问题