2017-01-13 1 views
0

Ich habe eine Reihe von CSV-Dateien mit dem Header aber Wie eine Funktion auf eine bestimmte Spalte von Datenrahmen Speichern in einer Liste anwenden

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
 
<html> 
 

 
<head> 
 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
 
    <title></title> 
 
    <meta name="generator" content="LibreOffice 5.1.4.2 (Linux)" /> 
 
    <meta name="created" content="2017-01-13T23:23:37.721354329" /> 
 
    <meta name="changed" content="2017-01-13T23:24:34.687494320" /> 
 
</head> 
 

 
<body lang="en-US" dir="ltr"> 
 
    <p> 
 
    <br/> 
 
    <br/> 
 

 
    </p> 
 
    <table width="664" cellpadding="4" cellspacing="0"> 
 
    <col width="123"> 
 
     <col width="125"> 
 
     <col width="125"> 
 
      <col width="125"> 
 
      <col width="124"> 
 
       <tr valign="top"> 
 
       <td width="123" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>arrtime</p> 
 
       </td> 
 
       <td width="125" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>interaatime</p> 
 
       </td> 
 
       <td width="125" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>serTime</p> 
 
       </td> 
 
       <td width="125" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>DepTime</p> 
 
       </td> 
 
       <td width="124" style="border: 1px solid #000000; padding: 0.04in"> 
 
        <p>ActSerTime</p> 
 
       </td> 
 
       </tr> 
 
       <tr valign="top"> 
 
       <td width="123" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.37</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>0</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.39</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.40</p> 
 
       </td> 
 
       <td width="124" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in"> 
 
        <p>0.01</p> 
 
       </td> 
 
       </tr> 
 
       <tr valign="top"> 
 
       <td width="123" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.39</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>2</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.40</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.42</p> 
 
       </td> 
 
       <td width="124" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in"> 
 
        <p>0.02</p> 
 
       </td> 
 
       </tr> 
 
       <tr valign="top"> 
 
       <td width="123" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.40</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>1</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.42</p> 
 
       </td> 
 
       <td width="125" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in"> 
 
        <p>8.46</p> 
 
       </td> 
 
       <td width="124" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in"> 
 
        <p>0.04</p> 
 
       </td> 
 
       </tr> 
 
    </table> 
 
    <p style="margin-bottom: 0in"> 
 
    <br/> 
 

 
    </p> 
 
</body> 
 

 
</html>

ich dergleichen

verwendet, um Datensätze für verschiedene Tage enthalten Code, um die Dateien

#Scripts to load all the csv files of the queue data from day 1 to 13 
    path <- "/home/ilanre/Documents/Queue Research Work/" 
    files <- list.files(path=path, pattern="*.csv") 
    for(file in files) 
    { 
     perpos <- which(strsplit(file, "")[[1]]==".") 
     assign(
     gsub(" ","",substr(file, 1, perpos-1)), 
     read.csv(paste(path,file,sep=""))) 
    } 

ich verwenden lappy() -Funktion importieren möchten die Summe der Spalte 2 und 5 für jeden Tag zu finden und speichern Sie alle in der Liste oder DATAf rame Danke

Antwort

0

Mit dem Objekt files, das Sie bereits erstellt haben, erstellt das folgende eine Liste mit der Summe des zweiten Tages und der Summe der fünften Spalte für jeden Tag.

list_of_sums <- lapply(files, function(file){ 
     df <- read.csv(file) 
     c(sum(df)[, 2]), sum(df)[, 5]) 
    }) 
0

Betrachten data.frame() innerhalb lapply die Summen der beiden Säulen zu binden:

path <- "/home/ilanre/Documents/Queue Research Work/" 
files <- list.files(path=path, pattern="*.csv") 

dfList <- lapply(files, function(f){ 
    df <- read.csv(paste0(path, f)) 
    data.frame(SumOfInteraatime = sum(df$interaatime), SumOfActSerTime = sum(df$ActSerTime)) 
}) 

dfList <- setNames(dfList, gsub(".csv", "", files)) 
Verwandte Themen