【问题标题】:Manipulating csv spreadsheet using R使用 R 操作 csv 电子表格
【发布时间】:2014-08-20 01:54:31
【问题描述】:

我想写一个如下所示的基本循环:

  1. 将电子表格导入为数据框

  2. 按标头中的变量扫描找到丢失的数据点“NA”删除该变量的该日历月的所有数据,即:

    这里 var 'X' 在 1 月 2 日有 'NA'。我想删除 'X' 的所有 1 月值

      X Y Z
    

    1 月 3 日 3 3 日

    1 月 4 日 5 日

    1 月 2 日 6 2

    2 月 1 日 8 日

    2 月 4 日 2 3 日

    2 月 9 日 4 月 1 日

    3 月 5 日不适用 5

    3 月 8 日 7 4

    3 月 9 日 7 5

    创建如下所示的新数据框:

      X
    

    2 月 1 日

    2 月 4 日

    2 月 9 日

    3 月 5 日

    3 月 8 日

    3 月 9 日

       Y 
    

    1 月 3 日

    1 月 4 日

    1 月 6 日

    2 月 8 日

    2 月 2 日

    2 月 4 日

      Z
    

    1 月 3 日

    1 月 5 日

    1 月 2 日

    3 月 5 日

    3 月 4 日

    3 月 5 日

  3. 将剩余的“完整月份”(在本例中为“X”feb-mar、“Y”jan-feb、“Z”jan&mar)保存在新数据框中,以导出为新的 .csv 文件

任何入门帮助都会很大。如果已经问过这个问题,请引导我到源我不确定如何搜索这个。

【问题讨论】:

    标签: r loops dataframe spreadsheet import-from-csv


    【解决方案1】:

    试试:

    ddf2 = ddf[,c(1,2)]
    xdf = ddf[ddf$month!=ddf2$month[is.na(ddf2$X)], c(1,2)]
    xdf
      month X
    4   feb 1
    5   feb 4
    6   feb 9
    7   mar 5
    8   mar 8
    9   mar 9
    
    ddf2 = ddf[,c(1,3)]
    ydf = ddf[ddf$month!=ddf2$month[is.na(ddf2[,2])], c(1,3)]
    ydf
      month Y
    1   jan 3
    2   jan 4
    3   jan 6
    4   feb 8
    5   feb 2
    6   feb 4
    
    ddf2 = ddf[,c(1,4)]
    zdf = ddf[ddf$month!=ddf2$month[is.na(ddf2[,2])], c(1,4)]
    zdf
      month Z
    1   jan 3
    2   jan 5
    3   jan 2
    7   mar 5
    8   mar 4
    9   mar 5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多