让R 把数据值读成数值型时遇到困难

编程语言 2026-07-12

我正在对三文鱼养殖中的死亡数据进行分析,以识别死亡比例超过7%的情形;然而,当我试图让R 读取死亡列中的数值时,结果总是返回NULL。理论上我使用了as.numeric函数,因此这些数值应该不会有读取问题。

以下是我使用的代码:

candata<-read.csv("Canada standardized.csv")

data_mort <- as.numeric(candata$Mortality.rate)

candatamax <-subset(candata, candata$Mortality.rate...>0.07)

然而在运行代码时,即使把阈值设得更低,例如0.001,"candatamax" 仍然是一个空对象。如果有人有修复此问题的建议,我将不胜感激。我已经使用dput() 添加了数据的一个子集,以便提供一个可复现的示例。

subset_reprducible <- structure(
  list(
    Site.Name = c(
      "Baxter Islets",
      "Dawley Pass",
      "Eagle Bay",
      "McCall Islets",
      "Barnes Bay",
      "Kunechin",
      "Muchalat South",
      "Newcomb",
      "Noo-la",
      "Salten"
    ),
    Month = c(
      "January",
      "January",
      "January",
      "January",
      "January",
      "January",
      "January",
      "January",
      "January",
      "January"
    ),
    Year = c(
      2013L,
      2013L,
      2013L,
      2013L,
      2013L,
      2013L,
      2013L,
      2013L,
      2013L,
      2013L
    ),
    X = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
    X.1 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
    X.2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
    Site.Name.1 = c(
      "Baxter Islets",
      "Dawley Pass",
      "Eagle Bay",
      "McCall Islets",
      "Barnes Bay",
      "Kunechin",
      "Muchalat South",
      "Newcomb",
      "Noo-la",
      "Salten"
    ),
    Start.Date = c(
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013",
      "01-01-2013"
    ),
    End.Date = c(
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013",
      "31-01-2013"
    ),
    Mortality.rate = c(
      0.0345,
      0.0192,
      6e-04,
      2e-04,
      0.0091,
      0.0016,
      0.0014,
      0.0131,
      0.0044,
      0.0024
    )
  ),
  row.names = c(NA, 10L),
  class = "data.frame"
)

解决方案

在这种情况下,... 后缀是多余的。代码应如下所示:

candatamax <- subset(candata, Mortality.rate > 0.07)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章