0

私は次のような行列と呼ばれる行列を持っています:

charge  convexhull_xCoor    convexhull_yCoor    id              intensity
3       3336.43             667.62       f_7936733956214261295  475891
3       3339.73             667.6        f_7936733956214261295  475891

idとintensityの2つのベクトルを取得します。

idVector = matrix[4]
intensityVector = matrix[5]

appendを使用してこれら2つのベクトルを一緒に追加したいと思います。

bigVector = append(idVector, intensityVector)

ただし、これを行うと、結果として次のようになります。

[1]       4       3       2       1  475891 5490000 1860000 1100000

RはidVectorからclass=factorを作成しましたが、intVectorを追加しても、ラベルには追加されません。因子にintベクトルを追加するにはどうすればよいですか?

以下は再現可能なコードです。dput(head(matrix、4))を指定するのに問題があります。これは、非常に多くのIDをすべて取得するためです。代わりに、ベクトルのdput(head(matrix、4))を指定しました。

vector1 = structure(c(4L, 3L, 2L, 1L), .Label = c("f_15177294341548527346", "f_18178836531573487427", "f_2444900193131259878", "f_7936733956214261295"), class = factor")
vector2 = c(475891, 5490000, 1860000, 1100000)
bigVector = append(vector1, vector2)
vector1
vector2
bigVector
4

1 に答える 1

2

ベクトルにそのような因子と数値を混在させることはできません。データフレームを使用する必要があります。

bigdf <- data.frame( id=idVector, intensity=intensityVector )

次に、を見てくださいbigdf(そして、などを介して列にアクセスできますbigdf$id)。

または、の要素idVectorが一意である場合は、 :idVectorのnames属性として追加できます。intensityVector

names(intensityVector) <- idVector

ただし、idはもはや要素ではありませんが、のようにintensity特定の値を参照できます。idintensityVector['f_7936733956214261295']

データフレームアプローチは、統計分析に非常に適しているため、ほとんどの場合、より優れています。

于 2012-02-27T12:38:52.557 に答える