3

だから、これから飛び降りる簡単な質問....

R のデータフレームの値を高速に置き換える

この置換を行いたいが、データ フレームの特定の行に対してのみ行う場合、次の行指定を追加する方法はありますか。

df [df<0] =0

これを行 40 ~ 52 に適用するようなもの (機能しません):

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

助言がありますか?とても有難い。

4

2 に答える 2

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

行 2 と行 3 のみの負の値を 0 に置き換えるには、次のようにします。

 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
于 2013-10-29T17:19:41.267 に答える
2

これは、R のリサイクル動作を利用する別の方法です。

df[df < 0 & 1:nrow(df) %in% 40:52] <- 0
于 2013-10-29T17:40:54.907 に答える