私はデータの列を持っており、さまざまな怒りのためにこの列の値を特定の値に置き換えたいと思います。たとえば、6と15の間のすべての値に対して、10に置き換えたい。16と25の間のすべての値に対して、20などで置き換えたい。これを行う最も簡単な方法は何ですか? おかげ特定の範囲内にあるデータの列の値を置き換えるにはどうすればよいですか?
1
A
答えて
1
論理インデックス:
y=rand(1, 50)
y(y>0.5) = 1
y
上記1
で0.5より大きいy
の要素を置き換えるあなたにもfind
を使用することができますが、論理的なインデックスは、これを行うための明白な方法です。
1
それはあなたの例では、すべてのようなものだならば、あなたはこれを使用することができます:
y=randint(100,1,1309)+1; % generate data sample
y=10*floor((y+4)/10) % 'round' to 10
0
はあなたには、いくつかのビニングをしたいように見える、とその範囲の「中央値」の値を一定の範囲内の値を置き換え?以下は、基本原則のコードです。 HISTCを使用してください。あなたは以下の変更が必要な場合があります唯一の事は、「エッジ」ですが、そうでない場合、これはトリックを行う必要があります。
x = round(rand(1,1000)*1400); % Sample data
intervalSize = 10; % 5 to 15, 15 to 25 etc.
maxEdge = max(x) + intervalSize - mod(max(x), intervalSize);
edges = 0:intervalSize:max(x);
[n bin] = histc(x,edges); % Don't really need 'n'
for i = 1: (numel(edges) - 1)
midValue = mean([edges(i) edges(i+1)]);
x(bin == i) = midValue;
end
そして、ここではHISTCを使用していない別のアプローチだが、論理的インデックスに純粋に依存しています。
%% Approach 2:
x = round(rand(1,1000)*1400); % Sample data
intervalSize = 10;
maxEdge = max(x) + intervalSize - mod(max(x), intervalSize);
edges = 0:intervalSize:max(x);
for i = 1: (numel(edges) - 1)
midValue = mean([edges(i) edges(i+1)]);
x(x >= edges(i) & x < edges(i+1)) = midValue;
end
論理インデックス条件を調整して、必要なものを正確に取得する必要があるかもしれませんが、そのアイデアが得られます。
0
これは最も簡単な方法だと思います。
a = rand(1308, 1)*1308; % replace with your column
target = [10 20]; % replace with your targets and ranges
left = [6 15];
right = [16 25];
for i=1:length(target)
a(a>=left(i)&a<right(i)) = target(i);
end
関連する問題
- 1. PandasデータフレームでNaNの値の範囲を置き換えるにはどうすればいいですか?
- 2. データフレームの特定の値をRのNAに置き換えるにはどうすればよいですか?
- 3. 特定の日付範囲内のデータを取得するにはどうすればよいですか?
- 4. データフレーム内の値をRの文字列に置き換えるにはどうすればよいですか?
- 5. data-attributeの特定の文字列を置き換えるにはどうすればよいですか?
- 6. UITextView iOSの範囲でテキストを置き換えるにはどうすればいいですか?
- 7. データフレーム列の値を単一の値に置き換えるにはどうすればよいですか?
- 8. 特定の値の範囲内でどのように数値の範囲を合計しますか?
- 9. 特定の範囲の値を持つNAを外れ値に置き換えるには?
- 10. AIの範囲内の特定のオブジェクトを検出するにはどうすればよいですか?
- 11. 特定の値が範囲内にあるかどうかを調べるJava
- 12. JAVA特定の範囲の数値のテーブルを生成するにはどうすればよいですか?
- 13. 値の範囲を1つの値に置き換えます
- 14. データフレーム内の範囲外のデータをNAで識別して置き換えるにはどうすればよいですか?
- 15. 特定の行をテキストファイルの行番号で置き換えるにはどうすればよいですか?
- 16. Excelの行コンテンツを特定の方法で置き換えるにはどうすればよいですか?
- 17. bashスクリプトでファイルの特定の行を置き換えるにはどうすればよいですか?
- 18. テキストファイルの特定の行をシェルスクリプトで置き換えるにはどうすればよいですか?
- 19. データフレーム内のすべての値を指定された範囲内のランダムな値に置き換えます。
- 20. 正規表現の特定の範囲だけをsedと置き換えるにはどうすればよいですか? SEDで
- 21. 特定の範囲内で番号を保持するにはどうすればよいですか?
- 22. 特定の範囲内でユニコード記号を印刷するにはどうすればよいですか?
- 23. 式を見つけて特定のテキストに置き換えるにはどうすればよいですか?
- 24. 特定の時間が所定の範囲内にあるかどうかを確認するにはどうすればよいですか?
- 25. C#で文字列内のスペースをアンダースコアに置き換えるにはどうすればよいですか?
- 26. 特定のクラス名のイメージを置き換えるにはどうすればよいですか?
- 27. 範囲内の要素の数が他の範囲内にあるかどうかを調べるにはどうすればよいですか?
- 28. パンダのデータフレーム内の特定の列のn番目の行の値を置き換えるにはどうすればよいですか?
- 29. テキストファイルの数値を大きい数値に置き換えるにはどうすればよいですか?
- 30. Python - 特定のx範囲内のy値をnp.averageで置換する
ありがとうございました。私の値の範囲は0から1308ですから、私は10の範囲でそれをやりたいので、これを130回繰り返す必要があります。 a、b、cの値が異なると、y(y> = a&y <= b)= c、130回と入力する方が効率的ですか? –
いくつかのビニングを行い、特定の範囲の値をその範囲の「中央値」の値に置き換えたいかのように見えますか?以下の私の解決策を見てください。 – eternaln00b