R初学者:编写我的第一个函数只针对一个变量



我是R的初学者。实际上,我正在尝试编写我的第一个函数。

我在电脑上的一个目录中寻找csv文件,然后我把它们放在一个数据帧中,然后我问一些变量的平均值。

我有两个变量:硫酸盐和硝酸盐。

我的功能适用于硝酸盐,但不适用于硫酸盐。我真的不知道怎么了。R工作室给了我一条线索:在mean.default(目录$state,na.rm=TRUE(:

参数不是数字或逻辑:返回NA

但我不知道该如何处理这些信息。

我的功能是:

pollutantmean <- function (directory, polluant = "nitrate", id = 1:332)
directory <- data.frame()
for (i in id)
{directory <- rbind(directory, read.csv(full_files[i]))} 
if (polluant == "nitrate"){
mean(directory$nitrate,na.rm = TRUE)} 
else if (polluant == "sulfate"){
mean(directory$suftate,na.rm = TRUE)}
else {print("KO")}
}

你能帮我吗?

Caroline

  1. 第一行缺少一个开头的大括号
  2. 只有当存在一个名为full_files的全局变量时,此函数才会起作用;考虑将其传递给函数显式
  3. 可能是else if子句中的拼写错误:directory$sulfate,而不是directory$suftate
  4. 此函数不返回任何内容;执行它实际上不会有任何作用。从技术上讲,运行mean()会打印一些输出,但情况可能并不总是如此,尤其是从命令行,或者从另一个函数或脚本调用时。考虑将mean()包装在print()中(或者,更好的是,将return包装起来,这将允许您将平均值分配给其他变量(

相关内容

  • 没有找到相关文章

最新更新