У меня есть фрейм данных и два символьных вектора, которые имеют определенные имена столбцов этого фрейма, скажем:
dat <- read.table(
text = "A B C D E F G H I J
A 0 1 1 1 0 1 0 1 1 0
B 1 0 0 0 1 0 1 0 0 1
C 0 0 0 1 1 0 0 0 0 0
D 1 0 1 0 0 1 0 1 0 1
E 0 1 0 1 0 1 1 0 1 0
F 0 0 1 0 0 0 1 0 0 0
G 0 1 0 1 0 0 0 0 0 0
H 1 0 1 0 0 1 0 0 0 1
I 0 1 0 1 1 0 1 0 0 0
J 1 0 1 0 0 1 0 1 0 0",
header = TRUE
)
charvec1 <- c("A","C","E")
charvec2 <- c("I","J","D")
Я хотел бы соединить два символьных вектора и поместить строки и столбцы фрейма данныхкоторых нет в этом новом векторе к нулю.
Я пытался сделать следующее без особого успеха:
# put the two character vectors together
charvec3 <- c(t(outer(charvec1 , charvec2 , paste)))
# use the character vectors to put the column names which are not mentioned to zero
dat[-charvec3,] <- 0 # Row will be set to zero
dat[,-charvec3] <- 0 # Column will be set to zero,
Может кто-нибудь объяснить мне, как это сделать правильно?