サイトと種の存在量のマトリックスのヒートマップを作成しようとしています。このコードのいくつかについてMaurits Eversに感謝しますが、エラーメッセージなしではまだ実行できません。
ティブルに行名を設定することは非推奨です。
row.names<-.data.frame
(*tmp*
のエラー、値= list(Site = c( "AwarukuLower"、:invalid 'row.names' length
Tidyverse&tibblesが問題である可能性があることが示唆されました。パッケージtibble&tidyverseをアンインストールし、代わりにdevtools readrパッケージをインストールしました。引き続き同じエラーメッセージが表示され、修正方法がわかりません。 添付データ 。
library(readr)
devtools::install_github("tidyverse/readr") #to install readr without tidyverse
bank_mean_wide_sp <- read.csv("/Users/Chloe/Desktop/Environmental Data Analysis/EDA.working.directory/bank_mean_wide.csv")
log_mean_wide_sp <- read_csv("/Users/Chloe/Desktop/Environmental Data Analysis/EDA.working.directory/log_mean_wide.csv")
as.matrix(bank_mean_wide_sp)
as.matrix(log_mean_wide_sp)
サイト情報を行名として保存
logdf <- log_mean_wide_sp;
base::row.names(logdf) <- log_mean_wide_sp[, 1];
非数値列を削除
logdf <- logdf[, -1];
as.matrix
を使用してdata.frameを行列に変換します
logmap <- heatmap(
as.matrix(logdf),
col = cm.colors(256),
scale = "column",
margins = c(5, 10),
xlab = "species", ylab = "Site",
main = "heatmap(<Auckland Council MCI data 1999, habitat:bank>, ..., scale = \"column\")")
上記のエラーメッセージを返します。
ティブルに行名を設定することは非推奨です。
row.names<-.data.frame
(*tmp*
のエラー、値= list(Site = c( "AwarukuLower"、:invalid 'row.names' length
または、最初の3行なしでコードを実行しようとし、as.numericおよびas.matrixを使用してdata.frameを数値行列に変換しました。これも機能しませんでした。
as.matrix(logdf)
logmap <- heatmap(as.numeric(logdf),
col = cm.colors(256),
scale = "column",
margins = c(5, 10),
xlab = "species", ylab = "Site",
main = "heatmap(<Auckland Council MCI data 1999, habitat:bank>, ..., scale = \"column\")")
この2番目のエラーを返します。
Heatmap(as.numeric(logdf)、col = cm.colors(256)、scale = "column" 、:(list)オブジェクトのエラーは、タイプ 'double'に強制変換できません
エラーメッセージには2つの部分があります
- ティブルに行名を設定することは非推奨です。
つまり、tibbleに行名を設定することは非推奨です。現時点ではまだ機能しますが、今後削除される予定です。これを参照してください https://github.com/tidyverse/tibble/issues/12 。
row.names<-.data.frame
(*tmp*
のエラー、値= list(Site = c( "AwarukuLower"、: 'row.names' length length
これは、設定しているrow.namesの長さが、データフレーム内にある行の総数と等しくないというエラーです。
エラーはcsvファイルの読み取りです。csvファイルの最初の列は行名ですが、通常の列として読み取っています。を使用して正しく読んでください
log_mean_wide_sp<-read.csv("log_mean_wide.csv",row.names = 1)
その後、あなたがしているように以下の手順を実行してください
logdf<-log_mean_wide_sp
logmap <- heatmap(
as.matrix(logdf),
col = cm.colors(256),
scale = "column",
margins = c(5, 10),
xlab = "species", ylab = "Site",
main = "heatmap(<Auckland Council MCI data 1999, habitat:bank>, ..., scale = \"column\")")
それは出力として以下の画像を与えます
データフレームの数値部分のマトリックスバージョンを作成することをお勧めします。
log_mean_mat <- as.matrix(log_mean_wide_sp[,-1])
このための行名の設定に問題はないはずです。
row.names(log_mean_mat) <- log_mean_wide_sp[,1]
個人的にはheatmap.2
基本関数に対するヒートマップ(gplots
パッケージ内)の関数ですが、基本コードを使用して機能するものは次のとおりです。
heatmap(log_mean_mat,
col = cm.colors(256),
scale = "column",
margins = c(5, 10),
xlab = "species", ylab = "Site",
main = "heatmap(<Auckland Council MCI data 1999, habitat:bank>, ..., scale = \"column\")")
Site Acarina Acroperla Amphipoda Austroclima Austrolestes Ceratopogonidae
AwarukuLower 0 0 1 0 0 0
AwarukuMid 1 20 6 0 0 0
NukumeaLower 0 44 1 0 0 1
NukumeaUpper 1 139 9 2 1 0
VaughanLower 1 110 112 1 0 0
VaughanMid 2 44 12 2 1 0