Em uma pasta ( path = "D:/DataLogs/
), tenho várias subpastas. Dentro dessas subpastas, gostaria de recuperar todos os csv começando apenas com "QCLog" e mesclá-los ( rbind
) em um único data.frame, enquanto crio uma primeira coluna nova incluindo o caminho/nome completo desses csv QCLog.
As duas dificuldades são:
- Em algumas subpastas, pode haver arquivos csv (começando com QCLog ou não) diretamente acessíveis e outros localizados em vários arquivos zip (exemplos dentro dos retângulos verdes abaixo).
- Todos os CSVs têm o mesmo número de colunas (n=66) e os mesmos cabeçalhos. No entanto, alguns cabeçalhos contêm acentos ou símbolos, quase todas as segundas colunas (uma em cada duas) têm exatamente o mesmo nome de cabeçalho e algumas colunas estão vazias (sem NAs).
Isso é viável?
Obrigado pela ajuda
O código a seguir, embora um pouco longo, funciona bem e rápido:
Algo como o seguinte pode funcionar. Não testado.
Com base nas afirmações da questão, assumimos que cada arquivo csv
D:/datalogs/*/QCLog*.csv
oue que todos os arquivos csv têm as mesmas colunas e cabeçalhos. Se estes não forem satisfeitos, pode ou não funcionar. Se não, você pode modificar o código com base no que você realmente tem usando seu conhecimento do que você realmente tem ou pode editar os arquivos para colocá-los no formato declarado na pergunta.
Se isso funciona vai depender do que você realmente tem, mas sua heurística geralmente funciona e é curta. Se estiver ok ter os nomes das linhas identificando a fonte em vez de uma coluna separada, então podemos omitir as duas últimas linhas.
Atualizar
Código adicionado para garantir que somente
QCLog...csv
arquivos sejam usados emdat
.