Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 图梳值_R_Plot - Fatal编程技术网

R 图梳值

R 图梳值,r,plot,R,Plot,我有一个data.frame,每行代表n个样本的成对组合的值。我如何扩展它以获得每个组合的“expand.grid”,但保持给定对的值,并为具有相同样本的行提供值1? 我的目标是以“相关矩阵”样式绘制这些图(例如)。不确定是否有更简单的方法 set.seed(123) n <- 3 d <- as.data.frame(t(combn(letters[1:n], m = 2)), stringsAsFactors = FALSE) d$value <- rnorm(nrow(d

我有一个data.frame,每行代表n个样本的成对组合的值。我如何扩展它以获得每个组合的“expand.grid”,但保持给定对的值,并为具有相同样本的行提供值1? 我的目标是以“相关矩阵”样式绘制这些图(例如)。不确定是否有更简单的方法

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
set.seed(123)

n这里有一个使用
data.table
的选项。将'data.frame'转换为'data.table'(
setDT(d,…
)设置'key'列,交叉连接,对于'V1'和'V2'中具有相同值的行(
V1==V2
),将'value'设置为1。根据相同列的'V1',V2',和
pmin
,将'value'替换为'value'中的非NA值

library(data.table)
d1 <- setDT(d, key = c("V1", "V2"))[CJ(letters[1:n], letters[1:n])][
 V1==V2, value:= 1][, value:= na.omit(value) , .(pmax(V1, V2), pmin(V1, V2))][]
d1
#   V1 V2      value
#1:  a  a  1.0000000
#2:  a  b -0.5604756
#3:  a  c -0.2301775
#4:  b  a -0.5604756
#5:  b  b  1.0000000
#6:  b  c  1.5587083
#7:  c  a -0.2301775
#8:  c  b  1.5587083
#9:  c  c  1.0000000
库(data.table)
d1