我有一个矩阵320X64,我想修改64个变量,使前8个等于0,最后56个等于1。
我尝试了重复功能:
pen.vect<-(rep(0,8),rep(1,56))
penalty.factor<-pen.vect
但它无效
谢谢:)
答案 0 :(得分:0)
您可以轻松地在矩阵和数据框之间进行切换。使用数据框可以使bracket notation:
更轻松地完成此操作bm <- as.data.frame(B) # assuming your matrix is called "B"
bm[,1:8] <- 0
bm[,9:56] <- 1
B2 <- as.matrix(bm)
这是一个包含虚拟数据的完整工作示例:
B = matrix(c(2:65), nrow=320, ncol=64) # Create a matrix with dummy data
bm <- as.data.frame(B) # Change it to a data frame
bm[,1:8] <- 0 # Change each row in the first 8 columns to 0
bm[,9:56] <- 1 # Change the rest to 1
B2 <- as.matrix(bm) # Change the data back to a matrix
另外,请查看this post如何正确发布R问题。我真的很震惊你的问题还没有被删除或标记。关于SO的R可能是残酷的。