我在一个文件夹中有100个csv文件,并且被要求编写一个函数,该函数将返回每个文件的完整个案数(包含0个NA值的所有行的计数)。在每个文件中有5列。
我正在尝试返回一个数据框,该数据框将显示' ID'列(提供对文件的引用)和计算的' Nobs' column(给出每个csv文件中的完整个案数)。我希望能够为函数中指定的不同文件执行此操作,例如:文件1:3,78:92等。
我能够获得完整案例数量和相应ID号的正确数字,但是当我按功能粘贴列标题时,ID' ID'和Nobs'每行后重复(请见下文)。我希望列标题只在每列的顶部,而不是在每一行之后重复。
ID Nobs
1 2 1042
ID Nobs
1 4 475
ID Nobs
1 8 193
ID Nobs
1 10 149
ID Nobs
1 12 97
请你能帮我解决这个问题 摘要:如何摆脱重复标题' ID'和' Nobs'在每一行之后。
非常感谢你的时间。
答案 0 :(得分:0)
您还没有提供任何代码,所以我创建了一个您可以调整的简单示例。
我创建了两个名为dt1.csv
和dt2.csv
的csv文件。它们中的每一行都有3行,但只有dt1.csv
在其中一列中有一行带有NA。
# vector of file names
filenames = list.files(pattern = "[.]csv")
library(dplyr)
data.frame(filenames, stringsAsFactors = F) %>% # create dataframe with the file names
mutate(id = row_number()) %>% # add the id
group_by(filenames) %>% # for each filename
do({dd = read.csv(.$filenames) # read the csv file
data.frame(., # keep file name and id
Nobs = nrow(dd[complete.cases(dd),]))}) # count number of complete cases
# Source: local data frame [2 x 3]
# Groups: filenames [2]
#
# filenames id Nobs
# (chr) (int) (int)
# 1 dt1.csv 1 2
# 2 dt2.csv 2 3