2017-02-15 11 views
0

Ich versuche, in mehreren Zellen in einem Datenrahmen zu speichern. Aber mein Code speichert die Daten in der letzten Zelle (auf dem dd-Array). Bitte sehen Sie meine Ausgabe unten.Werte in einem Zellendatenrahmen speichern

Kann mich bitte jemand korrigieren? Ich kann nicht herausfinden, was ich falsch mache.

Vielen Dank im Voraus,

MyData <- read.csv(file="Pat_AR_035.csv", header=TRUE, sep=",") 
dd <- unique(MyData$POLICY_NUM) 

for (j in length(dd)) { 
    myDF <- data.frame(i=1:length(dd), m=I(vector('list', length(dd)))) 
    myDF$m[[j]] <- data.frame(j,MyData[which(MyData$POLICY_NUM==dd[j] & MyData$ACRES), ],ncol(MyData),nrow(MyData))  
    } 

[[60]] 
NULL 

[[61]] 
NULL 

[[62]] 
NULL 

[[63]] 
     j OBJECTID DIVISION POLICY_SYM POLICY_NUM YIELD_ID LINE_ID RH_CLU_ID ACRES PLANT_DATE ACRE_TYPE CLU_DETERM STATE COUNTY FARM_SERIA TRACT 
1646 63  1646  8   MP  754033  3  20 39565604 8.56 5/3/2014  PL   A  3  35  109 852 
1647 63  1647  8   MP  754033  1  10 39565605 30.07 4/19/2014  PL   A  3  35  109 852 
1648 63  1648  8   MP  754033  1  10 39565606 56.59 4/19/2014  PL   A  3  35  109 852 
    CLU_NUMBER FIELD_ACRE       RMA_CLU_ID UPDATE_DAT Percent_Ar RHCLUID Field1 OBJECTID_1 DIVISION_1 STATE_1 COUNTY_1 
1646   3  8.56 F68E591A-ECC2-470B-A012-201C3BB20D7F 9/21/2014 63.4990 39565604 1646  1646   8  3  35 
1647   1  30.07 eb04cfc0-e78b-415f-b447-9595c81ef09e 9/21/2014 100.0000 39565605 1647  1647   8  3  35 
1648   2  56.59 5922d604-e31c-4b9d-b846-9f38e2d18abe 9/21/2014 92.1442 39565606 1648  1648   8  3  35 
    POLICY_N_1 YIELD_ID_1 RH_CLU_ID_ short_dist coords_x1 coords_x2 optional SHAPE_Leng SHAPE_Area ncol.MyData. nrow.MyData. 
1646  754033   3 39565604 5.110837 516747.8 -221751.4  TRUE 831.3702 34634.73   35   1757 
1647  754033   1 39565605 5.606284 515932.1 -221702.0  TRUE 1469.4800 121611.46   35   1757 
1648  754033   1 39565606 5.325399 516380.1 -221640.9  TRUE 1982.8757 228832.22   35   1757 

Antwort

0
for (j in length(dd)) 

Diese nicht übernimmt iterieren dd - es eine einzige Nummer iteriert: die Länge der dd. Nicht viel von einer Iteration. Sie wollten wahrscheinlich Folgendes oder etwas Ähnliches schreiben:

Es gibt jedoch weitere Probleme mit Ihrem Code. Zum Beispiel wird die myDF Variable kontinuierlich innerhalb Ihrer Schleife überschrieben, was wahrscheinlich nicht das ist, was Sie überhaupt beabsichtigt haben. Stattdessen sollten Sie Objekte in einer lapply-Anweisung erstellen und auf die Schleife verzichten.

+0

Ich habe für (j in seq_along (dd)) hinzugefügt, aber die Ausgabe ist immer noch gleich. Kannst du mir bitte zeigen, wie man die Lappy-Funktion benutzt? Vielen Dank, – user3408139

Verwandte Themen