绘制组合值

时间:2016-05-23 11:01:36

标签: r plot

我有一个data.frame,每行代表n个样本的成对组合的值。我怎么能扩展这个基本上得到一个' expand.grid'每个组合,但保持给定对的值,并给具有相同样本的行的值1? 我的目标是将这些绘制在一个相关矩阵中。风格情节(例如plots)。不确定是否有更简单的方法。

set.seed(123)
n <- 3
d <- as.data.frame(t(combn(letters[1:n], m = 2)), stringsAsFactors = FALSE)
d$value <- rnorm(nrow(d))
d
##   V1 V2      value
## 1  a  b -0.5604756
## 2  a  c -0.2301775
## 3  b  c  1.5587083

e <- expand.grid(letters[1:n], letters[1:n])
#e$value <- ?? 
# a-a, b-b, c-c will be e.g. 1
# a-b and b-a will be -0.5604
# a-c and c-a will be -0.2301
# b-c and c-b will be  1.5587

e
##   Var1 Var2
## 1    a    a
## 2    b    a
## 3    c    a
## 4    a    b
## 5    b    b
## 6    c    b
## 7    a    c
## 8    b    c
## 9    c    c

1 个答案:

答案 0 :(得分:2)

以下是使用data.table的选项。将'data.frame'转换为'data.table'(setDT(d,..)为'V1'和'V2'(V1==V2中具有相同值的行设置'key'列,交​​叉连接),将'value'设置为1.按相同列的'V1','V2'和pmax的{​​{1}}分组,将'value'替换为非NA值in '值'。

pmin