web-dev-qa-db-ja.com

Rで2つのベクトルを連結する

Rで2つのベクトルを次々に連結したいと思います。それを行うために次のコードを記述しました。

> a = head(tracks_listened_train)
> b = head(tracks_listened_test)
> a
[1] cc1a46ee0446538ecf6b65db01c30cd8 19acf9a5cbed34743ce0ee42ef3cae3e
[3] 9e7fdbf2045c9f814f6c0bed5da9bed7 3441b1031267fbb6009221bf47f9c5e8
[5] 206c8b79bd02beeea200879afc414879 1a7a95e3845a6815060628e847d14362
18585 Levels: 0001a423baf29add84af6ec58aeb5b90 ...
> b
[1] 7251a7694b79aa9a39f9a1a5f5c8a253 2f362377ef0e7bca112233fdda22a79c
[3] c1196625b1b733b62c43935334e1d190 58e41e462af4185b08231a41453c3faf
[5] 1cc2517fa9c037e02a14ce0950a28f67
10186 Levels: 0001a423baf29add84af6ec58aeb5b90 ...
> res = c(a,b)
> res
[1] 14898  1898 11556  3859  2408  1950  4473  1865  7674  3488  1130

しかし、結果のベクトルの予期しない結果が得られます。問題は何でしょうか?

8
Asmita Poddar

factorクラスをcharacterクラスに変換する必要があります

c(as.character(a), as.character(b))

characterの代わりに数値を取得する理由は、factorのストレージモード、つまり整数に基づいています。したがって、連結を行うと、強制的にintegerモードになります

11
akrun