将值存储在单元格数据框中

时间:2017-02-15 17:16:44

标签: r dataframe cell

我正在尝试在数据框中存储多个单元格。但是,我的代码将数据存储在最后一个单元格中(在dd数组上)。请参阅下面的输出。

有人可以纠正我吗?无法弄清楚我做错了什么。

提前致谢,

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

1 个答案:

答案 0 :(得分:0)

for (j in length(dd))

这不会迭代dd - 它会迭代一个数字:dd的长度。没有多少迭代。你可能想写下面的内容或类似内容:

for (j in seq_along(dd))

但是,您的代码存在更多问题。例如,myDF变量在循环内被不断覆盖,这可能不是你想要的。相反,您应该在lapply语句中创建对象并放弃循环。