gpt4 book ai didi

r - 不推荐在 tibble 上设置行名称。错误 : invalid 'row.names' length

转载 作者:行者123 更新时间:2023-12-04 11:33:48 36 4
gpt4 key购买 nike

我正在尝试制作站点与物种丰度矩阵的热图。感谢 Maurits Evers 提供的部分代码,我仍然无法在没有错误消息的情况下运行它:

Setting row names on a tibble is deprecated.Error in row.names<-.data.frame(*tmp*, value = list(Site = c("AwarukuLower", : invalid 'row.names' length



有人建议 tidyverse 和 tibbles 可能是问题所在。我卸载了包 tibble & tidyverse 并安装了 devtools readr 包。我仍然收到相同的错误消息,无法弄清楚如何解决这个问题。 Data attached .
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\")")

返回上面提到的错误信息:

Setting row names on a tibble is deprecated.Error in row.names<-.data.frame(*tmp*, value = 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\")")

返回第二个错误:

Error in heatmap(as.numeric(logdf), col = cm.colors(256), scale = "column", : (list) object cannot be coerced to type 'double'

最佳答案

您的错误消息有 2 部分

  1. Setting row names on a tibble is deprecated.


这意味着不推荐在 tibble 上设置行名称。它现在仍然有效,但将来会被删除。看到这个 https://github.com/tidyverse/tibble/issues/123 .

  1. Error in row.names<-.data.frame(*tmp*, value = list(Site = c("AwarukuLower", : invalid 'row.names' 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\")")

它将给出以下图像作为输出

enter image description here

关于r - 不推荐在 tibble 上设置行名称。错误 : invalid 'row.names' length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50166614/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com