卸下行我有以下的数据帧:从R数据帧
> str(df)
'data.frame': 3149 obs. of 9 variables:
$ mkod : int 5029 5035 5036 5042 5048 5050 5065 5071 5072 5075 ...
$ mad : Factor w/ 65 levels "Akgün Kasetçilik ",..: 58 29 59 40 56 11 33 34 19 20 ...
$ yad : Factor w/ 44 levels "BAKUGAN","BARBIE",..: 1 1 1 1 1 1 1 1 1 1 ...
$ donem: int 201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...
$ sayi : int 201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...
$ plan : int 2 2 3 2 2 2 7 3 2 7 ...
$ sevk : int 2 2 3 2 2 2 6 3 2 7 ...
$ iade : int 0 0 3 1 2 2 6 2 2 3 ...
$ satis: int 2 2 0 1 0 0 0 1 0 4 ...
我想从该数据帧中移除21个的特定行。
> a <- df[df$plan==0 & df$sevk==0,]
> nrow(a)
[1] 21
所以,当我删除这21行时,我将有一个新的数据框与3149 - 21 = 3128行。我发现以下解决方案:
> b <- df[df$plan!=0 | df$sevk!=0,]
> nrow(b)
[1] 3128
上述我的解决方案使用经修饰的逻辑表达式(!=
代替==
和|
代替&
)。除了修改原始逻辑表达式,我怎样才能获得没有这21行的新数据框?我需要类似的东西:
> df[-a,] #does not work
编辑(尤其是downvoters,我希望他们明白,为什么我需要一个替代的解决方案):我问了不同的解决方案,因为我正在写一个长码,和在我的代码的各个部分中有各种变量赋值(如我的示例中的a
)。所以,当我需要在代码的前进部分中删除行时,我不想回去尝试在类似于a
的表达式中编写逻辑表达式的反转。这就是为什么df[-a,]
对我更有用。
-1你必须包含在问题中的解决方案。没有问题需要解决(因为目前的问题措辞)。 –
@RichieCotton:我的解决方案使用了一个修改过的(不同的)逻辑表达式,最终得到我需要的结果;但我想看到的是如何从数据框中删除特定的行。我在我的问题中包含了我的解决方案,因为我不想在答案中看到它。 –
我已经在我的问题中添加了几行以解释我想知道的内容。 –