数字作为read.delim之后的因子

时间:2013-07-31 16:55:13

标签: r

我有一个看起来像这样的data.frame:

DF     
A      B      C      D       
1      2      3      4   
E      F      G      H     
5      6      7      8    

我想使用以下字符串仅对数字部分进行子集化:

sub_num = DF[sapply(DF, is.numeric)] 

问题是数字是使用read.delim读取data.frame后的因素。 如果我设置stringsAsFactor = F,则数字为字符。 可能这是一个愚蠢和基本的问题,但我无法解决它。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

请尝试以下

 sub_num <- DF[!is.na(as.numeric(sapply(DF, as.character)))[1:ncol(DF)], ]
 #     V1 V2 V3 V4
 #   2  1  2  3  4
 #   4  5  6  7  8 

<小时/>

至于您的sapply语句sapply(DF, is.numeric),为了正常工作,需要as.character

sapply(DF, function(X) is.numeric(as.character(X)))

但是这不会像你期望的那样索引你的DF