给定矩阵
test <- structure(list(X1 = c(3L, 0L, 3L, 1L, 2L, 2L, 1L, 2L, 2L, 3L),
X2 = c(2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), X3 = c(0L,
0L, 3L, 0L, 2L, 2L, 3L, 0L, 0L, 2L), X4 = c(1L, 1L, 1L, 0L,
3L, 1L, 3L, 1L, 1L, 1L), X5 = c(3L, 3L, 1L, 3L, 1L, 3L, 2L,
3L, 3L, 3L), X6 = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L
), X7 = c(2L, 2L, 2L, 3L, 2L, 2L, 3L, 2L, 2L, 2L), X8 = c(3L,
0L, 1L, 0L, 1L, 1L, 3L, 0L, 0L, 1L), X9 = c(3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L)), .Names = c("X1", "X2", "X3", "X4",
"X5", "X6", "X7", "X8", "X9"), row.names = c("1", "2", "3", "4",
"5", "6", "7", "8", "9", "10"), class = "data.frame")
我试图将每个“1”替换为数字序列c(0,0,1),将2替换为c(0,1,0),将3替换为(1,0,1),将0替换为(0,0,0)。矩阵中的每个值都应替换为这三个二进制值序列之一。生成矩阵的nrow应为nrow(test)*3。显然,我尝试使用索引test[test == 1] <- c(0,0,1),但这会返回错误消息"rhs is the wrong length for indexing by a logical matrix"。在此处似乎也不适用replace函数,它返回相同的错误消息。有什么想法吗?
apply
是n维的,所以我对从向量方面进行流畅选择印象深刻。 - IRTFM