拆分字符串并在 R 中创建虚拟对象
Split a string and create dummies in R
我有类似 val1
的东西,其中分隔符是 ,
。我想拆分 val1
然后创建假人。如何解决这个问题。非常感谢。
val1 <- c("ab, cd, ef", "", "gh")
val2 <- c('John','Peter','Jolie')
data <- data.frame(val1,val2); data
预期答案
ab cd ef gh
John 1 1 1 0
Peter 0 0 0 0
Jolie 0 0 0 1
在base R
中,使用strsplit
根据,
和任何space将'val1'拆分为list
,将 list
的名称设置为 'val2',stack
将其设置为两列 data.frame 并应用 table
out <- table(stack(setNames(strsplit(data$val1, ",\s+"), data$val2))[2:1])
names(dimnames(out)) <- NULL
-输出
> out
ab cd ef gh
John 1 1 1 0
Peter 0 0 0 0
Jolie 0 0 0 1
我有类似 val1
的东西,其中分隔符是 ,
。我想拆分 val1
然后创建假人。如何解决这个问题。非常感谢。
val1 <- c("ab, cd, ef", "", "gh")
val2 <- c('John','Peter','Jolie')
data <- data.frame(val1,val2); data
预期答案
ab cd ef gh
John 1 1 1 0
Peter 0 0 0 0
Jolie 0 0 0 1
在base R
中,使用strsplit
根据,
和任何space将'val1'拆分为list
,将 list
的名称设置为 'val2',stack
将其设置为两列 data.frame 并应用 table
out <- table(stack(setNames(strsplit(data$val1, ",\s+"), data$val2))[2:1])
names(dimnames(out)) <- NULL
-输出
> out
ab cd ef gh
John 1 1 1 0
Peter 0 0 0 0
Jolie 0 0 0 1