如何删除R中的所有非数字行?

时间:2016-03-07 19:03:44

标签: r dataframe delete-row azure-machine-learning-studio

我有一个像bellow这样的数据框,其中ID是数值,而comment1comment2字符串是我作为csv导入的。但数据框的结果如下所示,其中fifth comment应位于comment2中,原始ID值将替换为此值。这种情况只会随机发生几行。此外,仅当我在 Azure ML 工作室中导入 R 代码时才会出现此问题,在 RStudio 中没有发生数据错位。所以我想的是,只删除第一列ID不是数值的整行。由于错位字符串值是随机长句,我不能进行字符串匹配来删除该行。而且数据框足够大,我无法手动删除行。建议请。

  ID                 Comment1                  comment2
 123             This is first comment        this is second
 234              third comment               fourth comment
fifth comment                                                  
 345               sixth comment              seventh comment

您可以在此处找到数据框的示例

    df <-
  read.csv(
    "https://docs.google.com/spreadsheets/d/171YXjzm3FsapXSkqgOSos6UGXNRcd1yxmLyvaRnCX5E/pub?output=csv"
  )
df <- df[-1,]
df <- df[, 1:12]
colnames(df) <-
  c(
    "ID","Created","Comments","Liked_By","Disliked_By", "Recipient_Number",
    "Sender","Recipients","Read_By", "Subject","Introduction","Body"
  )

3 个答案:

答案 0 :(得分:3)

子集到数字ID:

subset(df, grepl('^\\d+$', df$ID))

模式应匹配以数字开头和结尾的ID值,并且只包含数字。

答案 1 :(得分:1)

这是因为你的评论描述在某处有(,)并且它打破了csv格式。为避免这种情况,您可以折叠向量

答案 2 :(得分:0)

感谢大家提出的宝贵建议。我刚刚将dataframe, .xls转换为.csv文件,其中包含,的文字会破坏整个文件。 转换为.tsv 现在正常运作。