woo*_*ock 7 string split r dataframe
我想通过在数据框中分割矢量来创建新列.
我有这样一个数据框:
YEAR Variable1 Variable2
2009 000000 00000001
2010 000000 00000001
2011 000000 00000001
2009 000000 00000002
2010 000000 00000002
2009 000000 00000003
...
2009 100000 10000001
2010 100000 10000001
...
2009 100000 10000011
....
Run Code Online (Sandbox Code Playgroud)
如您所见,Variable2与变量1相关(变量2 =变量1 +最后两位数:例如01,02,03 ......表示子类别).我想将Variable2拆分为子类别中的许多变量.结果应该是:
YEAR Variable1 Variable2 Variable3 Variable4 ...
2009 000000 00000001 0 0
2010 000000 00000001 0 0
2011 000000 00000001 0 0
2009 000000 0 00000002 0
2010 000000 0 00000002 0
2009 000000 0 0 00000003
...
2009 100000 10000001 0 0
2010 100000 10000001 0 0
...
2009 100000 0 0 0 ... 10000011
Run Code Online (Sandbox Code Playgroud)
你会怎么做?我以为我应该尝试在循环中重新编码Variable2 ..我尝试通过操纵字符串,但我没有解决问题..
这会起作用。首先让我们构建数据。
values <- paste0("0000000", 1:4)
library(data.table)
dt <- data.table(val = sample(values, 10, replace = TRUE))
Run Code Online (Sandbox Code Playgroud)
for 循环足以定义新列。
for(level_var in dt[, unique(val)]){
dt[, eval(level_var) := ifelse(val == level_var, level_var, 0)]
}
Run Code Online (Sandbox Code Playgroud)