我有一个数据框,其中一列包含以空格分隔的字符代码列表:
"Ab B C"
""
"X C"
"N Ab F S"
:
Run Code Online (Sandbox Code Playgroud)
我想将其转换为多个列,每个列对应一个不同的值,指示(在1或0中)该值在列表中找到.以上示例给出了期望的结果:
df$Ab = 1,0,0,1
df$B = 1,0,0,0
df$C = 1,0,1,0
df$F = 0,0,0,1
df$N = 0,0,0,1
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
假设你开始:
df <- data.frame(v1 = c("Ab B C", "", "X C", "N Ab F S"))
Run Code Online (Sandbox Code Playgroud)
您可以尝试cSplit_e我的"splitstackshape"包:
library(splitstackshape)
cSplit_e(df, "v1", sep = " ", type = "character", fill = 0)
# v1 v1_Ab v1_B v1_C v1_F v1_N v1_S v1_X
# 1 Ab B C 1 1 1 0 0 0 0
# 2 0 0 0 0 0 0 0
# 3 X C 0 0 1 0 0 0 1
# 4 N Ab F S 1 0 0 1 1 1 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |