【问题标题】:Read table with columns of unequal row length by filling with NA通过填充 NA 读取具有不等行长度的列的表
【发布时间】:2022-01-16 05:57:31
【问题描述】:

我无法使用 read.csv() 读取表,因为它具有不同行长的列。

我的数据如下所示:

      x        y

1     cat      small
2     dog      medium
3     mouse    

我想用 NA 填充较短的列,这样我就可以创建一个如下所示的数据框:

      x        y

1     cat      small
2     dog      medium
3     mouse    NA

read.scv 文档有一个参数“Fill=TRUE”,但该函数只处理具有不同列长度的行的表。

最好的问候, 里奇

【问题讨论】:

标签: r dataframe


【解决方案1】:

baseR 中的选项一:

df[df==""]<-"NA"


     x      y
1   cat  small
2   dog medium
3 mouse     NA

或选项二,您可以使用dplyr()

library(dplyr)

mutate_all(df, list(~na_if(.,"")))

      x      y
1   cat  small
2   dog medium
3 mouse     NA

样本数据

【讨论】:

    【解决方案2】:

    尝试使用 data.table 包中的 fread。这会识别空单元格并用 NA 填充它们。

    我为测试创建的 csv 如下所示:

    a;b
    1;1
    2;2
    3;3
    ;4
    ;5
    

    R 代码:

    library(data.table)
    
    fread(file.choose()) 
    

    输出:

        a b
    1:  1 1
    2:  2 2
    3:  3 3
    4: NA 4
    5: NA 5
    

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 2012-10-30
      • 2020-12-31
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2020-12-12
      相关资源
      最近更新 更多