2

2つのベクトルで2つの.txtファイルを読み取るスクリプトを書いています。その後、スピアマンの順位相関を作成し、結果をプロットしたいと思います。最初のベクトル値の長さは12〜13文字(例:7.3445555667または10.3445555667)で、2番目のベクトル値の長さは1文字(例:1または2)です。

コード:

vector1 <- read.table ("D:...path.../mytext1.txt", header=FALSE)
vector2 <- read.table ("D:...path.../mytext2.txt", header=FALSE)
cor.coeff = cor(vector1 , vector2 , method = "spearman")
cor.test(vector1 , vector2 , method = "spearman")
plot(vector1.var, vector2.var)

.txtファイルには数値のみが含まれています。

2つのエラーが発生します。最初のエラーは4行目で「'x'は数値ベクトルである必要があります」のようで、2番目のエラーは5行目で「オブジェクトベクトル1.varが見つかりませんでした」のように発生します。

私も試しました

 plot(vector1, vector2)

それ以外の

 plot(vector1.var, vector2.var)

しかし、「stripchart.default(x1、。。。)のエラー:無効なプロットメソッド」のようなエラーがあります。

実装はhttp://www.gardenersown.co.uk/Education/Lectures/R/correl.htm#correlationで方向付けられています

4

2 に答える 2

5

strこれは非常に便利な関数であり(詳細はを参照)、特にオブジェクトタイプ?strを確認するために頻繁に使用する必要があります。R簡単str(vector1)str(vector2)説明すると、これらの列が数値ではなく文字として読み取られたかどうかがわかります。その場合は、を使用as.numeric(vector1)して各ベクトルのデータを型キャストします。

また、names(vector1)names(vector2)名が何であるかを示し、プロットの問題を解決する可能性があります。

于 2012-04-30T15:30:26.837 に答える
5

私は疑いvector1vector2ベクトルです。「値」セクションに記載されている内容を読ん?read.tableでください。

価値:

    A data frame (‘data.frame’) containing a representation of the
    data in the file.

...。

したがって、2つのテキストファイルに1つの変数しか含まれていない場合でも、読み込まれる2つのオブジェクトは、それぞれ1つのコンポーネントを持つデータフレームになります。

次に、データファイルにヘッダーが含まれていないため、Rが変数名を構成します。私はこれをテストしていませんが、IIRCで変数をテストし、vector1両方vector2ともと呼ばれX1ます。Rでオブジェクトがどのように表示されるかを確認するには、(または)で同じhead(vector1)ことを行います。vector2names(vector1)

なぜうまくいくと思うのかはわかりますvector1.varが、Rに関する限り、。という名前のオブジェクトを探していたことを理解する必要がありますvector1.var。これ.は、Rオブジェクト名の他の文字です。サブセット化または選択演算子として使用する場合は.、Rのサブセット化演算子を確認する必要があります。これらは$and[および[[です。たとえば、R言語定義マニュアルまたはRマニュアルを参照してください。

コードを次のように変更できると思います。

vector1 <- read.table ("D:...path.../mytext1.txt", header=FALSE)[, 1]
vector2 <- read.table ("D:...path.../mytext2.txt", header=FALSE)[, 1]
cor.coeff <- cor(vector1 , vector2 , method = "spearman")
cor.test(vector1 , vector2 , method = "spearman")
plot(vector1, vector2)

しかし、私はあなたの2つのテキストファイルに何があるかについてかなり推測しています...

于 2012-04-30T15:30:38.117 に答える