忍者ブログ
Yaleで、遊んで学ぶ日々。

Yaleで、遊んで学ぶ日々。

囲碁、ときどきプログラミング、ところにより経済。
[269]  [268]  [267]  [266]  [265]  [264]  [263]  [262]  [261]  [260]  [259
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Rでベクトルの一部を取り出したい時には、要素番号を整数か論理値のベクトルで与える。

x <- c("A", "B", "C", "D", "E", "F")
x[ c(1, 5) ]
x[ c(F, F, T, F, T, T) ]

[1] "A" "E"
[1] "C" "E" "F"


 
だから、例えば2つおきとか3つおきとかで要素を取得したい場合は、そういうインデックスを作って代入すれば良い。例えば、第2要素から始まって3つおきに要素を抜き出すには、[2, 5] というベクトルを作って代入するか、[F, T, F, F, T, F] というベクトルを作って代入する。

x <- c("A", "B", "C", "D", "E", "F")
x[ seq(2, length(x), by=3) ]
x[ (1:length(x) %% 3) == 2 ]
 
[1] "B" "E"
[1] "B" "E"
 


pythonで同じ事をやろうとするとエラーが出る。リストはインデックスとして受け付けられない。

x = ["A", "B", "C", "D", "E", "F"]
x[ [2, 5] ]
x[ [False, False, True, False, True, True] ] 

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not list




ただし、先ほどののように固定要素ごとに抜き出したいのなら、サブスクリプティングという方法でできる。x[i::k] という形で、iがスタート地点、kが間隔。

x = ["A", "B", "C", "D", "E", "F"]
x[1::3]
x[0::2]

['B', 'E']
['A', 'C', 'E']
 

PR
この記事にコメントする
お名前:
タイトル:
文字色:
メールアドレス:
URL:
コメント:
パスワード:   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Calender
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Search in This Blog
Latest Comments
[03/30 川内のばば山田]
[03/30 川内のばば山田]
[08/06 Aterarie]
[07/05 Agazoger]
[07/01 Thomaskina]
Oldest Posts
Latest Trackbacks
フリーエリア

Barcode
Access Analysis
Powerd by NINJAブログ / Designed by SUSH
Copyright © Yaleで、遊んで学ぶ日々。 All Rights Reserved.
忍者ブログ [PR]