qed*_*qed 1 r data-manipulation
我试图将两个矩阵中的元素配对,这两个矩阵由以下代码块生成:
set.seed(29)
y = rnorm(16)
yn = paste('n', 1:16, sep='')
y = embed(y, 3)
yn = embed(yn, 3)
ycomp = y[, rep(3, ncol(y))]
yncomp = yn[, rep(3, ncol(y))]
logitable = (ycomp - y) < 1
yn[logitable] = NA
yncomp[logitable] = NA
yn
# [,1] [,2] [,3]
# [1,] NA NA NA
# [2,] NA NA NA
# [3,] "n5" NA NA
# [4,] NA "n5" NA
# [5,] NA NA NA
# [6,] "n8" "n7" NA
# [7,] NA NA NA
# [8,] NA NA NA
# [9,] NA NA NA
#[10,] NA NA NA
#[11,] NA NA NA
#[12,] "n14" "n13" NA
#[13,] NA NA NA
#[14,] NA NA NA
yncomp
# [,1] [,2] [,3]
# [1,] NA NA NA
# [2,] NA NA NA
# [3,] "n3" NA NA
# [4,] NA "n4" NA
# [5,] NA NA NA
# [6,] "n6" "n6" NA
# [7,] NA NA NA
# [8,] NA NA NA
# [9,] NA NA NA
#[10,] NA NA NA
#[11,] NA NA NA
#[12,] "n12" "n12" NA
#[13,] NA NA NA
#[14,] NA NA NA
Run Code Online (Sandbox Code Playgroud)
预期的结果将是一个像这样的2列的矩阵
"n3" "n5"
"n4" "n5"
"n6" "n7"
"n6" "n8"
"n12" "n14"
"n12" "n13"
Run Code Online (Sandbox Code Playgroud)
编辑:添加引号以避免混淆.:)
如果您想要一个双列矩阵作为结果(而不是逗号分隔值的向量),您可以使用此方法:
both <- cbind(as.vector(yncomp), as.vector(yn))
both[!is.na(both[, 1]), ]
Run Code Online (Sandbox Code Playgroud)