state.namestate.name の50要素から,
"Alabama" "Alaska" "Arizona" "Arkansas" "California" "Colorado" "Connecticut" "Delaware" "Florida" "Georgia" "Hawaii" "Idaho" "Illinois" "Indiana" "Iowa" "Kansas" "Kentucky" "Louisiana" "Maine" "Maryland" "Massachusetts" "Michigan" "Minnesota" "Mississippi" "Missouri" "Montana" "Nebraska" "Nevada" "New Hampshire" "New Jersey" "New Mexico" "New York" "North Carolina" "North Dakota" "Ohio" "Oklahoma" "Oregon" "Pennsylvania" "Rhode Island" "South Carolina" "South Dakota" "Tennessee" "Texas" "Utah" "Vermont" "Virginia" "Washington" "West Virginia" "Wisconsin" "Wyoming"
nagasa <- nchar(state.name)文字列の長さが最大となる要素(州の名前)は,複数あり,
> state.name[ nagasa == max(nagasa) ]文字列の長さが最小となる要素(州の名前)は,複数あり,
[1] "North Carolina" "South Carolina"
> state.name[ nagasa == min(nagasa) ]のように,州の名前はすべて取り出すことはできますが,
[1] "Iowa" "Ohio" "Utah"
No.22145 Re: R ベクトル要素の完全一致検索 【青木繁伸】 2016/09/19(Mon) 22:50
which を使えば良いでしょう> which(nagasa==max(nagasa))蛇足ではあるが,which.max, which.min では仕様にあわないが,それはそれで使い道がある
[1] 33 40
> state.name[which(nagasa==max(nagasa))]
[1] "North Carolina" "South Carolina"
> which(nagasa==min(nagasa))
[1] 15 35 44
> state.name[which(nagasa==min(nagasa))]
[1] "Iowa" "Ohio" "Utah"
> which(nagasa==12) # 任意の長さの州名を取り出す
[1] 34 38 39 41
> state.name[which(nagasa==12)]
[1] "North Dakota" "Pennsylvania" "Rhode Island" "South Dakota"> which.max(nagasa)
[1] 33
> state.name[which.max(nagasa)]
[1] "North Carolina"
> which.min(nagasa)
[1] 15
> state.name[which.min(nagasa)]
[1] "Iowa"
No.22146 【御礼】 Re: R ベクトル要素の完全一致検索 【明石】 2016/09/20(Tue) 08:32
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
which.max()関数,which.min()関数を使うことを考えましたが,
最初に検出した1つに要素のみを返すことから,
重複の場合も考慮した,which.max()関数,which.min()関数のような関数を
探しましたが,見つけることができませんでした。
青木先生からご教示いただきました内容で,
which.max()関数,which.min()関数の活用の幅が広がりました。
よく分かりました。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る