2017-12-29 28 views
0

マイナスの値と、データフレームのすべての列の値が(999,9991,9992,9996)の値を-100に置き換えたい場合は、私がやる。私は同じデータフレームではなく新しいデータフレームとして保存したい。私のデータセットの 私は列の数百データフレームの各列の特別な値を置き換えます。

x<-c(-1,-2,0,1,9991) 
y<-c(1,2,3,4,999) 
z<-c(100,101,-999,9992,9996) 
data<-as.data.frame(cbind(x,y,z)) 
+0

ようこそスタックオーバーフロー! [MCVE](https://stackoverflow.com/help/mcve)の作成方法を読み、質問を編集してください。ここのユーザーは既存のコードを批判したいと思うでしょう。 – codeMonkey

+0

この解決策を達成しようとしたが、ユーザーがあなたを助けることができないコードを表示してください。 – codeMonkey

答えて

1

各列の値を置き換えるためにlapplyを使用してソリューションを持っています。

data2 <- data 

data2[] <- lapply(data2, function(x){ 
    x[x < 0 | x %in% c(999, 9991, 9992, 9996)] <- -100 
    return(x) 
}) 
data2 
#  x y z 
# 1 -100 1 100 
# 2 -100 2 101 
# 3 0 3 -100 
# 4 1 4 -100 
# 5 -100 -100 -100 
+1

これは素晴らしいことです。 – sahboor

+0

これらの特別な値をその変数の平均値に置き換えたいのであれば、どうすればいいですか?ありがとうございます。私は以下を試みたが、仕事はしなかった data [] < - lapply(データ、機能(x){ x [x <0 |%%c%(9991,9991,9992,9996)< - NA リターン(X) }) データ[] < - lapply(データ、関数(x)は{ X [is.na(X)] < - 平均(X) リターン(X) }) – sahboor

+0

を検索してください関連する質問誰も以前に同様の質問をしていない場合、この新しい質問で新しい投稿を開始することができます。 – www

関連する問題