matlab表达式相当于R

时间:2017-11-11 01:11:55

标签: r matlab

哪个表达式与以下表达式最相似:

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

目标

通过迭代矩阵编号行来删除观察

2 个答案:

答案 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,]