如何在列中包含数值和非数字值时删除列中的值?

时间:2017-05-21 11:06:48

标签: r

我有一个数据集,其中一列有非数字值和数值。我想创建一个子集,其中我的值大于0,我也想保留非数字值。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

将列转换为numeric(如果是character类,只需执行as.numeric(df1$col1),但如果是factr,则as.numeric(as.character(df1$col1)))和创建逻辑条件以对行进行子集

v1 <- as.numeric(as.character(df1$col1))
df1[v1 > 0 | is.na(v1),] 
#   col1       col2
#1   24 -0.5458808
#2  asd  0.5365853
#4   d1 -0.5836272
#5    2  0.8474600

数据

set.seed(24)
df1 <- data.frame(col1 = c(24, 'asd', -5, 'd1', 2), col2 = rnorm(5))