卸下行我有以下的數據幀:從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:我的解決方案使用了一個修改過的(不同的)邏輯表達式,最終得到我需要的結果;但我想看到的是如何從數據框中刪除特定的行。我在我的問題中包含了我的解決方案,因爲我不想在答案中看到它。 –
我已經在我的問題中添加了幾行以解釋我想知道的內容。 –