如何删除R中没有数字的行

时间:2015-10-22 01:42:05

标签: r dataframe

我的数据如下:

SNP             A1      A2      EFF                     FRQ
rs12565286      C       G       -0.00225985777786465    .04354
rs11804171      A       T       -0.00530020318295282    .04485
rs3094315       A       G       -0.0042551489236695     .8364
rs12562034      A       G       -0.00911972489527125    .09763
rs12124819      A       G       0.0250148724382224      .
rs2980319       A       T       0.0178927256033542      .1306
rs4040617       A       G       -0.0173263263037023     rabbit

我想删除包含“。”的行。那包含“兔子”。有没有办法保持数字?我想这样做的原因是因为我使用大型数据文件进行操作,我收到1 - gwas.data$FRQ[i] : non-numeric argument to binary operator错误。我是否正确地假设错误是因为某些数据不是数字?我甚至没有检查数据中的数据是否包含非数字值,因为它的长度为300万行。

1 个答案:

答案 0 :(得分:2)

示例data.frame:

df <- data.frame(a=1:10, b=1:10, FRQ=c(rnorm(8), '.', 'rabbit'), stringsAsFactors=FALSE)

要检查所有列的类,请尝试:lapply(df, class)

如果FRQ列是字符,您可以通过删除所有非数字将其转换为数字,然后转换为数字。像这样:

library(stringr)
df <- df[!str_detect(df$FRQ, '([A-Za-z])'), ]
df <- df[!str_detect(df$FRQ, '\\.$'), ]
df$FRQ <- as.numeric(df$FRQ)