【问题标题】:data frame error in RR中的数据帧错误
【发布时间】:2018-04-18 12:36:13
【问题描述】:

我尝试从许多具有典型行数和列数的文件中提取两列(“硝酸盐”和“硫酸盐”)。这是我的代码..

   pollutant <- if(pollutant == TRUE){
      id[,"nitrate"]
      } else {
           id[,"sulfate"]
             }

我应该使用这些列来计算这些列的含义。 请帮我一把,我是R的新人

【问题讨论】:

  • 问题不清楚,输入和预期输出是什么?
  • 参数是(数据,污染物,id)
  • 您的数据是什么样的?
  • pollutantmean
  • 您似乎将多个数据帧存储在一个名为 id 的列表中。如果是这样,使用id[, "nitrate"] 将不会访问数据框,而是会在列表中查找名为nitrate 的对象。试试id[[i]][, "nitrate"]

标签: r dataframe subset


【解决方案1】:

函数if 每次只接受单个值。如果pollutantdata.frame 结构或类似结构,if 循环将失败。我的建议是尝试使用data.table 环境。它使您似乎想做的事情变得更加轻松(我并没有完全从您的文字中得到它)。

    library(data.table)

    pollutant <- data.table(pollutant)
    Pollutat.Subset <- pollutant[id == "nitrate" | id =="sulfate",]

这应该根据 ID 的身份对您的数据进行子集化。

【讨论】:

  • 这是我的全部代码.. 污染物平均值
  • 输出是 > data.frame(..., check.names = FALSE) 中的错误:参数暗示不同的行数:332、1461,我不知道该怎么办! !
  • 我无法复制您的代码,因为您向我发送了对笔记本电脑中文件的引用。您必须生成一些类似于您的随机数据,以便我可以在我的计算机中重现错误。另外,从你的问题中还没有完全清楚你想要什么。如果您需要的是按组计算的平均值,请使用 data.tabledplyr 包。让生活更轻松。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
相关资源
最近更新 更多