如何在r的dataframe列中替换非浮点类原子?

时间:2019-07-10 01:37:08

标签: r

我在数据框中逐列得到Q表示取代原子。 例如

    A_col    B_col
1    "Hi"      0.3
2    -0.5      0.7
3   "HiHi"   FALSE

在上表中,A_column中有两个字符类原子。所以它不是浮动的!我要摆脱这两个HiHiHi。或者,替换为NA。 而且,在B_column中,存在布尔类atom(FALSE)。我仍然希望在此列中保留布尔类。

重点是,如何消除列中的原子类类型。

1 个答案:

答案 0 :(得分:0)

data.frame列不能具有多个类别(即布尔值+数字)。相反,我们可以使用numeric转换为as.numeric。非数字将转换为NA,而布尔值FALSE将强制转换为0。

df1[] <- lapply(df1, function(x) as.numeric(replace(x, x %in% FALSE, 0))) 

数据

df1 <- structure(list(A_col = c("Hi", "-0.5", "HiHi"), B_col = c("0.3", 
"0.7", "FALSE")), class = "data.frame", row.names = c("1", "2", 
"3"))