2013-10-29 45 views
2

所以一個簡單的問題跳樓這一個....更換價值

Fast replacing values in dataframe in R

如果我想這樣做,代替但只爲我的數據幀的某些行,有什麼辦法到行規範添加到:

df [df<0] =0 

事情是將其應用到行40-52(不工作):

df[df[40:52,] < 0] = 0 

有什麼建議嗎?非常感激。

回答

4

或者乾脆:

df[40:52,][df[40:52,] < 0] <- 0 

下面是測試:

test = data.frame(A = c(1,2,-1), B = c(4,-8,5), C = c(1,2,3), D = c(7,8,-9)) 

#> test 
# A B C D 
#1 1 4 1 7 
#2 2 -8 2 8 
#3 -1 5 3 -9 

要以0替換負值僅行2和3,你可以這樣做:

test[2:3,][test[2:3,] < 0] <- 0 

,你會得到

#> test 
# A B C D 
#1 1 4 1 7 
#2 2 0 2 8 
#3 0 5 3 0 
+0

非常感謝!完美的作品。 – Austin

+0

很高興幫助:) – Mayou

2

這是利用R的回收行爲的另一種方式。

df[df < 0 & 1:nrow(df) %in% 40:52] <- 0