我有一个数据集,其中一列有非数字值和数值。我想创建一个子集,其中我的值大于0,我也想保留非数字值。我怎么能这样做?
答案 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))