我编写了一个应该返回数据帧的函数。虽然输出正常,但输出的标题不正确。当我初始化数据帧(输出)时,我清楚地标记了两列是'id'和'nobs'。但是,在输出中,列分别标记为X30和X932。有人可以帮忙吗?
这是我的代码
complete <- function(directory, id) {
output <- data.frame(id=character(),
nobs=character(),
stringsAsFactors=FALSE)
files <- list.files()
for (i in id){
mydata <- read.csv(files[i])
nobs <- nrow(na.omit(mydata))
tempVector <- c(i, nobs)
output <- rbind(output, tempVector)
}
print(output)
}
答案 0 :(得分:1)
如果没有可重复的示例,我无法测试,但是如果你tempVector <- data.frame(id=i, nobs=nobs)
,我认为它会按你想要的方式工作。
或者,您可以保存几行代码并执行:
mydata <- read.csv(files[i])
output <- rbind(output, data.frame(id=i, nobs=nrow(na.omit(mydata))))
答案 1 :(得分:1)
如果我是正确的,你只想知道这个id中的id和观察次数
请改为readLines
。
id <- 1:3
files <- list.files()
files_nrow <- function(id){
c(id=id, nobs= length(readLines(files[id])))
}
data.frame(t(sapply(id,files_nrow)))
结果:
id nobs
1 1 12
2 2 8
3 3 13