2013-04-04 269 views
1

我想更改與條件相匹配的data.frame中的值,但我想指定條件僅適用於某些列。我知道有關:R data.frame,如何更改與特定列的條件匹配的值?

  • 是DF =數據幀:DF [DF < 0] = 0。這適用於所有列的所有元素,所以,這不是解決我的問題
  • 作爲DF = Dataframe和Col:數據框的列:df $ Col [df $ Col < 0] = 0.這適用於1列中的所有元素,因此,這也不能解決我的問題。

哪個中間的解決方案允許我篩選我定義的那些指定列的所有元素?

+0

類似於'df $ oneColumn [df $ anotherColumn <0&dfonemoreColumn <0] < - 0'? – juba 2013-04-04 07:45:00

+0

這將有助於在少數情況下,問題是我需要爲所有df的列(750),除了一個。 – Rafa 2013-04-04 08:00:00

+0

你能否提供一個可重複的例子? – juba 2013-04-04 08:01:18

回答

2

假設特定的列可以作爲指標:

cols <- 1:750 
df[,cols][df[,cols] < 0] = 0 

如果您需要排除某些列,使用負的指數,爲前:

cols <- c(-3,-4) 
+0

感謝e4e5f4,但它不起作用,new.df具有不同於df的列。見例: – Rafa 2013-04-04 08:49:02

+0

編輯。現在可以? – Nishanth 2013-04-04 09:05:35

+0

這正是我所期待的。非常感謝! – Rafa 2013-04-04 10:31:36

0

要排除某些列可以使用負索引即使

cols < - -c(3,4)

相關問題