哪个表达式与以下表达式最相似:
BDe(i,:) = [];
我用它来删除for循环中BDe的行i(矩阵n * m维)。
可重现的例子:
data = [ 1 1 1 ; 2 2 2; 3 3 3]
data =
1 1 1
2 2 2
3 3 3
data(1,:)=[]
data =
2 2 2
3 3 3
通过迭代矩阵编号行来删除观察
答案 0 :(得分:1)
很确定你在寻找
示例数据
data=read.table(text=" 1 1 1
2 2 2
3 3 3")
<强>代码强>
data[-1,]
V1 V2 V3
2 2 2 2
3 3 3 3
请注意,请注意循环中的以下行为。
x<-1:10
for(i in c(2,3,7)){x<-x[-i]}
x
[1] 1 3 5 6 7 8 10
最好只做
x<-1:10
x[-c(2,3,7)]
答案 1 :(得分:1)
首先,我建议您使用某种过滤功能而不是“删除”1行。例如,如果您只想保留总和为6的行,则它看起来像这样:
filter <- function(x) {
sum(x) == 6
}
BDe[apply(BDe, 1, filter), ]
如果你想删除一行,你不能为一行分配一个空矢量,你可以做的是重新分配没有第i行的矩阵:
BDe <- BDe[-i,]