首页 > 解决方案 > 如何在 r 的数据框列中替换非浮点类原子?

问题描述

我在数据框中逐列得到了 Q 替换原子。例如

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

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

所以重点是,我怎样才能摆脱列中的原子类类型。

标签: r

解决方案


data.frame列不能有多个类(即布尔值+数字)。相反,我们可以转换为numericwith 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"))

推荐阅读