3

我有一个看起来像这样的数据框:

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

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

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

问题是这些数字是使用 .data.frame 读取数据后的因素read.delim。如果我设置stringsAsFactors = FALSE数字是字符。这可能是一个基本问题,但我无法解决。

4

1 回答 1

3

请尝试以下操作

 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

于 2013-07-31T16:59:10.453 回答