2017年1月29日

Rプログラム・長さの違う複数のベクトルの結合


複数のベクトルの結合には、cbind または rbind を用いる。

  • cbind: 各ベクトルをタテに並べていき、一つのデータフレームにする。
  • rbind: 各ベクトルをヨコに並べていき、一つのデータフレームにする。


このとき、結合する各ベクトルの長さは同じでなければならない。
もし長さが違う場合、短い方のベクトルは、
長さを満たすまで永遠にリピートして入力されてしまう。


x=c(1,1,1,1,1,1,1,1)
y=c(1,2,3)
z=cbind(x,y)
z

## 結果
 警告メッセージ:
In cbind(x, y) :
  number of rows of result is not a multiple of vector length (arg 2)
> z
     x y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 1 1
[5,] 1 2
[6,] 1 3
[7,] 1 1
[8,] 1 2
>


こんなのは困る。
そこで、足りない部分にはNAを補ってデータフレームを作成したい。
パッケージを使えば色々手はあるようだが、手持ちだけでやりたい場合。
まず短いやつを長いやつのサイズまで伸ばしてやるのがコツ。

x=c(1,1,1,1,1,1,1,1)
y=c(1,2,3)

n <- max(length(x), length(y))
length(x)=n                    
length(y)=n

z=cbind(x, y)
z

## 結果
     x  y
[1,] 1  1
[2,] 1  2
[3,] 1  3
[4,] 1 NA
[5,] 1 NA
[6,] 1 NA
[7,] 1 NA
[8,] 1 NA
>

こうなる。


リストの各要素がベクトルで、
取り出してデータフレームにしたいなら、以下のとおり。

output=list(c(1:3), c(1:5), c(1:8))
output

[[1]]
[1] 1 2 3

[[2]]
[1] 1 2 3 4 5

[[3]]
[1] 1 2 3 4 5 6 7 8


## 各要素の最大長を求める

LENG=c()
for(i in 1:(length(output))){
 LLL=length(output[[i]])
 LENG=c(LENG,LLL)
 }
maxLENG=max(LENG)
maxLENG

[1] 8


## 各要素の長さを最大のサイズに変更
for(i in 1:(length(output))){
 length(output[[i]])=maxLENG
 }
output

[[1]]
[1]  1  2  3 NA NA NA NA NA

[[2]]
[1]  1  2  3  4  5 NA NA NA

[[3]]
[1] 1 2 3 4 5 6 7 8


## データフレームに結合
Data=do.call("cbind", output)
Data

     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    2    2
[3,]    3    3    3
[4,]   NA    4    4
[5,]   NA    5    5
[6,]   NA   NA    6
[7,]   NA   NA    7
[8,]   NA   NA    8


以上

2016年5月17日

サンフランシスコ空港のトランジット

サンフランシスコ(SLO)での乗り継ぎ。
本来なら乗り継ぎ(トランジット)くらいで記事にしないと思いますが、あまりに面倒なので書いてみます。

2016年4月8日

アメリカのラボ事情



こちらに来てすぐにラボミーティングがあり、ボスから以下のように挨拶がありました。

アメリカ留学の持ち物



こちらに来て1週間が経ち、ようやく周りの環境にも慣れてきました。
今回はアメリカに持ってきて良かったもの、あった方が良いものをリストアップしたいと思います。普通のものはいくらでもリストがあるので、マニアックなもの中心にいきますw



よかったもの


2016年4月7日

フィラデルフィア留学2016

フィラデルフィアの大学に留学が決まりました。

留学といっても、向こうで大学に入るわけではなく、
大学のスタッフ(ポスドク)として働くのですが、これも留学というらしい。
とにかくアメリカで働くことになりました。

その後の数ヶ月は、博士取得や留学準備に忙しく、
この記事も渡米後に書いています。
渡航準備でいろいろな本やHPを参考にさせてもらったのですが、
情報が古くて使えないことが良くありました。
ここでは2016年版の記録を書いていきたいと思います。
誰かの参考になればいいな。



2015年11月1日

ボストンで駆逐艦カシン・ヤングを見る

この前ボストン 旅行 出張に行ってきました。
少しだけ時間が空いたので、市内観光するかと思いきや、
ボストンってそれほど見るところがないのね。

アメリカ独立戦争の発端がボストン(ボストン茶会事件)だったり、
米国史ではそれなりに重要な都市なのですが。

市内中央にはフリーダム・トレイルという観光経路が準備され、
独立戦争の記念モニュメントなどを回ることができます。
このモニュメントには今でも献花が絶えず、関心の高さがわかります。
これほど素直に、過去の戦いを誇りにできるのは、
ある意味羨ましいというか、若者を見ているような感覚を覚えたり。

ただ、米国人でもないし米国史にそれほど思い入れもないので、
今回はこちらをみてきました ↓↓




メガジュルとトップロープ

この前に購入したメガジュル。
トップロープでのビレイに使ってみた感想。

結果:
1)クセになる
2)太くなったロープは手が死ぬ
3)ロワリングはちょっと微妙