R中重复功能

时间:2016-12-09 18:39:54

标签: r function repeat

我有一个矩阵320X64,我想修改64个变量,使前8个等于0,最后56个等于1。

我尝试了重复功能:

pen.vect<-(rep(0,8),rep(1,56)) 
penalty.factor<-pen.vect 

但它无效

谢谢:)

1 个答案:

答案 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可能是残酷的。