r - 将因子转换为数字后保留变量名称
问题描述
我想将我的分类数据转换为数字,所以我可以使用一些包。
下面的代码就是这样做的。
data("iris")
str(iris)
must_convert<-sapply(iris,is.factor) # logical vector telling if a variable needs to be displayed as numeric
M2<-sapply(iris[,must_convert],as.numeric) # data.frame of all categorical variables now displayed as numeric
out<-cbind(iris[,!must_convert],M2) #output based on original dataframe
问题是,对于某些变量,有 10 个级别,仅转换为数字是不够的,因为显然手动检查哪个数字是哪个因子效率不高。我正在尝试将数字转换为因子或列表,例如:
iris_factors_to_numbers
Species
setosa = 1
versicolor = 2
virginica = 3
此外,虽然 iris 数据只有一个分类变量,但我的却有很多。
解决方案
keepvalues <- function(data) {
filteredata <- data[sapply(data, class)=="factor"]
result <- lapply(filteredata, function(x) paste0(levels(x), " = ", unique(as.numeric(x))))
return(result)
}
keepvalues(iris)
$`Species`
[1] "setosa = 1" "versicolor = 2" "virginica = 3"
你想要这样的东西吗?
推荐阅读
- postgresql - 在 Google Cloud Platform (GCP)、PostgreSQL 上创建只读用户 - 可能吗?
- flutter - 如何在 Dart 中持久化 cookie?
- docker - dockerhub 中高山图像的缺点
- javascript - Ag grid - 如何对列进行排序以将所有空值显示为最后?
- html - 试图在这个 CSS 菜单中居中这个子菜单
- xcode - 我将如何打破“xcode/lldb 中的优化机会?
- postgresql - Postgresql:搜索具有相似字符的字符串
- reactjs - 如何在反应原生中使用Formik在另一个屏幕中发送带有路由参数的值?
- django - Django ORM - 根据字符串获取不同的对象
- ios - 如何在 swiftUI 中创建自定义滑块视图?