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
from
restrape2
软件包

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