2017-11-01 7 views
0

ベースRでは、データフレーム全体の値を削除/置換するために、次のコードを使用できます(たとえば、すべてのNAsまたは0.99より大きい値)。チーフル全体の値を置換

df[df > 0.99] <- NA 
df[is.na(df)] <- 0L 

tiallyyverseでdplyrを使用して同等の操作を実行する方法はありますか?

答えて

3

あなたはreplacemutate_allを使用することができます。

df = data.frame(x = c(1.2, 0.4, NA, 0.6), y = c(NA, 0.3, 0.992, 0.5)) 
df %>% mutate_all(~ replace(., . > 0.99 | is.na(.), 0)) 
# x y 
#1 0.0 0.0 
#2 0.4 0.3 
#3 0.0 0.0 
#4 0.6 0.5 

またはfunsを使用します。

df %>% mutate_all(funs(replace(., . > 0.99 | is.na(.), 0))) 

あなただけのパイプの一部としてこれを統合する必要がある場合は、replace方法は動作するはずです:

df %>% replace(. > 0.99 | is.na(.), 0) 
関連する問題