Rstudio 列多个二进制特征
Rstudio Columns Multiple Binary Features
我想将一列拆分为多个二进制虚拟列。我的数据框:df
id siz eage
1 6 10
2 7 11
3 8 10
目前我有这个代码与包 qdaptools 和插入符:
df <- cbind(df [1:3],mtabulate(strsplit(as.character(df$age), ':')))
我的问题:我怎样才能给这些虚拟列一个标题,所以我得到了这个:
id size age_10 age_11
1 6 1 0
2 7 0 1
3 8 1 0
按索引重命名:colnames(df)[4:5] <- c("age_10", "age_11")
按现有列名称重命名 colnames(df)[colnames(df) == "INSERT_COL_NAME"] <- "NEW_COL_NAME"
您可以尝试 dummies
包中的 dummy.data.frame
。
library(dummies)
library(dplyr)
df %>%
dummy.data.frame(names="age", sep="_")
输出为:
id size age_10 age_11
1 1 6 1 0
2 2 7 0 1
3 3 8 1 0
示例数据:
df <- structure(list(id = 1:3, size = 6:8, age = c(10L, 11L, 10L)), .Names = c("id",
"size", "age"), class = "data.frame", row.names = c(NA, -3L))
更新:
对于您在实际数据中遇到的错误,您可以使用以下代码
Error in sort.list(y) : 'x' must be atomic for 'sort.list' Have you
called 'sort' on a list?
library(dummies)
library(dplyr)
df %>%
data.frame() %>%
dummy.data.frame(names="Verkoopkanaal_groepering", sep="_")
我想将一列拆分为多个二进制虚拟列。我的数据框:df
id siz eage
1 6 10
2 7 11
3 8 10
目前我有这个代码与包 qdaptools 和插入符:
df <- cbind(df [1:3],mtabulate(strsplit(as.character(df$age), ':')))
我的问题:我怎样才能给这些虚拟列一个标题,所以我得到了这个:
id size age_10 age_11
1 6 1 0
2 7 0 1
3 8 1 0
按索引重命名:colnames(df)[4:5] <- c("age_10", "age_11")
按现有列名称重命名 colnames(df)[colnames(df) == "INSERT_COL_NAME"] <- "NEW_COL_NAME"
您可以尝试 dummies
包中的 dummy.data.frame
。
library(dummies)
library(dplyr)
df %>%
dummy.data.frame(names="age", sep="_")
输出为:
id size age_10 age_11
1 1 6 1 0
2 2 7 0 1
3 3 8 1 0
示例数据:
df <- structure(list(id = 1:3, size = 6:8, age = c(10L, 11L, 10L)), .Names = c("id",
"size", "age"), class = "data.frame", row.names = c(NA, -3L))
更新:
对于您在实际数据中遇到的错误,您可以使用以下代码
Error in sort.list(y) : 'x' must be atomic for 'sort.list' Have you called 'sort' on a list?
library(dummies)
library(dplyr)
df %>%
data.frame() %>%
dummy.data.frame(names="Verkoopkanaal_groepering", sep="_")