R 基于唯一值创建列
我想基于单个列的唯一值在数据框中创建列 例如 进入R 基于唯一值创建列,r,dataframe,R,Dataframe,我想基于单个列的唯一值在数据框中创建列 例如 进入 我们可以使用表格 !!table(1:nrow(df1), df1$Column1) # A B C # 1 TRUE FALSE FALSE # 2 FALSE TRUE FALSE # 3 FALSE FALSE TRUE 或者使用qdapTools library(qdapTools) mtabulate(df1$Column1)!=0 # A B C #[1,]
我们可以使用
表格
!!table(1:nrow(df1), df1$Column1)
# A B C
# 1 TRUE FALSE FALSE
# 2 FALSE TRUE FALSE
# 3 FALSE FALSE TRUE
或者使用
qdapTools
library(qdapTools)
mtabulate(df1$Column1)!=0
# A B C
#[1,] TRUE FALSE FALSE
#[2,] FALSE TRUE FALSE
#[3,] FALSE FALSE TRUE
或者使用
model.matrix
model.matrix(~Column1-1, df1)!=0
# Column1A Column1B Column1C
#1 TRUE FALSE FALSE
#2 FALSE TRUE FALSE
#3 FALSE FALSE TRUE
你也可以使用一个循环
sapply(df$Column1, function(i) grepl(i, df$Column1))
# A B C
#[1,] TRUE FALSE FALSE
#[2,] FALSE TRUE FALSE
#[3,] FALSE FALSE TRUE
您还可以使用
dcast
fromrestrape2
软件包
library(reshape2)
!is.na(dcast(df, Column1 ~ Column1))[, -1]
# A B C
#[1,] TRUE FALSE FALSE
#[2,] FALSE TRUE FALSE
#[3,] FALSE FALSE TRUE
sapply(df$Column1, function(i) grepl(i, df$Column1))
# A B C
#[1,] TRUE FALSE FALSE
#[2,] FALSE TRUE FALSE
#[3,] FALSE FALSE TRUE
library(reshape2)
!is.na(dcast(df, Column1 ~ Column1))[, -1]
# A B C
#[1,] TRUE FALSE FALSE
#[2,] FALSE TRUE FALSE
#[3,] FALSE FALSE TRUE