Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R功能正常,但I';I’我没有得到确切的结果_R_Function_Statistics - Fatal编程技术网

R功能正常,但I';I’我没有得到确切的结果

R功能正常,但I';I’我没有得到确切的结果,r,function,statistics,R,Function,Statistics,好的,首先让我定义我正在进行的项目以及我需要的结果。我有332个逗号分隔值文件的数据,实际上是美国卫生部关于硝酸盐和硫酸盐污染物污染参数的统计数据。共有332个ID用于监控所有城市污染的332个实体的列表,我必须对其进行一些分析 因此,数据表如下所示: Date (yyyy-mm-dd) sulphate nitrate ID xxxx-xx-01 some value some value 5 xxxx-xx-02 som

好的,首先让我定义我正在进行的项目以及我需要的结果。我有332个逗号分隔值文件的数据,实际上是美国卫生部关于硝酸盐和硫酸盐污染物污染参数的统计数据。共有332个ID用于监控所有城市污染的332个实体的列表,我必须对其进行一些分析

因此,数据表如下所示:

Date (yyyy-mm-dd)    sulphate      nitrate     ID
xxxx-xx-01           some value    some value  5
xxxx-xx-02           some value    some value  5
所以有5号监视器的每日数据。332个ID的其余部分也类似

现在,我的工作要求我编写一个函数,根据每个ID显示非NA值的数量。确定吗?这意味着如果我指定ID 1,那么函数将处理数据表,并为我提供一个简单的数据框,其中包含ID号和该ID的非NA值的数量

现在,如果我只指定一个ID,我的当前函数将以事实的方式执行。但是,当我指定ID的组合时,该函数将为我提供所有指定ID的总和,这实际上不是我想要的

这是全部功能:

complete <- function(directory, id = 1:332){
file.list <- list.files(directory, full.names = TRUE) ## list of files need to be read
pollutant.data <- data.frame() ## forming an empty data frame
for (i in 1:332){
     pollutant.data <- rbind(pollutant.data, read.csv(files))} ## final data frame
ID <- pollutant.data[which(pollutant.data[,'ID'] %in% id),] ## for the id vector that needs to be specified in the function
good <- complete.cases(pollutant.data)
nobs <- sum(complete.cases(ID)) ## sum of complete data according to ID
return(data.frame(id, nobs = nobs))
}

complete这一行是罪魁祸首:

ID <- pollutant.data[which(pollutant.data[,'ID'] %in% id),]
返回

1  3 
8  8

谢谢编辑尼科。非常感谢这个问题在不同形式的堆栈溢出上被问了100多次——请搜索“[r]污染物”中的重复项。@在这种情况下,josilber标记为重复项。我以前没见过这个问题,所以我给出了一个答案。。。但如果它是重复的,它应该被标记为suchWell。我通过搜索发现这一切都是真的。我从来没有找到我要的功能。
countComplete(test.data, c(1,3))
1  3 
8  8