错误的观察次数-点

时间:2018-10-09 15:55:31

标签: r object dataframe

我刚刚编写了我的“完成”功能(R编程-Coursera),但是某些功能无法正常工作。

 complete <- function(directory,id=1:332){

 #create a list of files
 list_files<-list.files(directory,full.names = TRUE)
 #create an empty data frame
 dat <- data.frame()

 for(i in id){
   #read in the file
temp<- read.csv(list_files[i],header=TRUE)
#delete rows that do not have complete cases
temp<-na.omit(temp)

#count all of the rows with complete cases
tNobs<-nrow(temp)

#enumerate the complete cases by index
dat<-rbind(dat,data.frame(i,tNobs))
  }
  return(dat)
}   

当我问:

cc <- complete("specdata", c(6, 10, 20, 34, 100, 200, 310))
print(cc$nobs)

它返回NULL。为什么?它应该返回: 228148124165104460232

1 个答案:

答案 0 :(得分:1)

问题是data.frame是通过不分配列名来创建的。因此,它将对象名称作为列名称,即第二列的tNobs

i <- 2
tNobs = 10
data.frame(i, tOobs)
#   i tOobs
#1 2    10

因此,当我们调用data.frame中不存在的nobs时,它将得到NULL

dat <- rbind(dat, data.frame(col1 = i, nobs = tNobs))