我有一个看起来像这样的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,则数字为字符。 可能这是一个愚蠢和基本的问题,但我无法解决它。
有人可以帮我吗?
答案 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