R重复列和行标题

时间:2015-09-15 17:57:06

标签: r header

我在一个文件夹中有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'在每一行之后。

非常感谢你的时间。

1 个答案:

答案 0 :(得分:0)

您还没有提供任何代码,所以我创建了一个您可以调整的简单示例。

我创建了两个名为dt1.csvdt2.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