根据唯一值创建列

Cam*_*Cam 3 r dataframe

我想基于单个列中的唯一值在数据框中创建列.

例如

Column1
A
B
C
Run Code Online (Sandbox Code Playgroud)

成

A     B      C
True  False  False
False True   False
False False  True
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以用 table

!!table(1:nrow(df1), df1$Column1)
#       A     B     C
#  1  TRUE FALSE FALSE
#  2 FALSE  TRUE FALSE
#  3 FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

或者使用mtabulate来自qdapTools

library(qdapTools)
mtabulate(df1$Column1)!=0
#         A     B     C
#[1,]  TRUE FALSE FALSE
#[2,] FALSE  TRUE FALSE
#[3,] FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

或使用 model.matrix

 model.matrix(~Column1-1, df1)!=0
 #  Column1A Column1B Column1C
 #1     TRUE    FALSE    FALSE
 #2    FALSE     TRUE    FALSE
 #3    FALSE    FALSE     TRUE
Run Code Online (Sandbox Code Playgroud)


Sot*_*tos 5

你也可以用一个循环,

sapply(df$Column1, function(i) grepl(i, df$Column1))
#         A     B     C
#[1,]  TRUE FALSE FALSE
#[2,] FALSE  TRUE FALSE
#[3,] FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)