我想基于单个列中的唯一值在数据框中创建列.
例如
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)
我们可以用 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)
你也可以用一个循环,
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)
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |