0

row.namesが何で、どのように機能するのかを理解するのにいくつか問題があります。そして、データにrow.names許可されていることを実行させる方法。

たとえば、以下のコード (私のデータ) を使用していくつかのクラスターを作成しています。行が行う結果をエクスポートしたいのですがsapply、今のところ画面だけにエクスポートします。データ フレームの最初の列 (path_country) は国名で、他の列は他の変数 (整数) です。これらのクラスタをテーブルまたは国とそのグループ メンバーシップのリストにエクスポートする簡単な方法がわかりません。

R のサンプル データ セットを使用してダミーのサンプルを作成しようとしmtcarsましたrow.names。指定した数のグループにmtcarsクラスターを作成cutreeし、データ フレームとして保存できます。このアプローチでは、最初の列に「車の名前」があり、2 番目の列にグループ番号があります (多かれ少なかれ、見栄えを良くするためにクリーンアップできますが、本質的には私が求めているものです)。私のデータで起こります。

これに関する任意の考えをいただければ幸いです。

# my data
path_country <- read.csv("C:/path_country.csv")
patho <- subset(path_country, select=c(2:188))
patho.d <- dist(patho)

patho.hclust <- hclust(patho.d)
patho.hclust.groups11 = cutree(patho.hclust,11)
sapply(unique(patho.hclust.groups11),function(g)path_country$Country[patho.hclust.groups11 == g])

# mtcars data
car.d <- dist(mtcars)
car.h <- hclust(car.d)
car.h.11 <- cutree(car.h, 11)
nice_result <- as.data.frame(car.h.11)
write.table(nice_result, "test.txt", sep="\t")
4

1 に答える 1

1

1)CSVファイルから作成data.frameできます:row.names

# Names in the first column
path_country <- read.table("C:/path_country.csv", row.names=1)
# Names in column "Country"
path_country <- read.table("C:/path_country.csv", row.names="Country", head=TRUE)

head=TRUE2 番目のケースでは、列の名前を使用するために指定する必要があることに注意してください。

これrownames(path_country)で、行の名前を含むベクトルとas.data.frame(patho.hclust.groups11)、エクスポートに適した結果が得られるはずです。

2) いつでもdata.framewith コマンドに行の名前を指定できます:

rownames(path_country) <- names.vector

ここnames.vectorで、 は の行数に等しい長さの一意の名前を持つベクトルdata.frameです。あなたの例では:

rownames(patho.hclust.groups11) <- path_country$Country

最初のアプローチを使用している場合、このコマンドは必要ないことに注意してください。

于 2013-01-14T17:42:44.500 に答える