gpt4 book ai didi

r - 通过将一个变量拆分为多个变量来创建新列(在 R 中)

转载 作者:行者123 更新时间:2023-12-03 03:57:26 24 4
gpt4 key购买 nike

我想通过分割数据框中的向量来创建新列。

我有这样一个数据框:

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
....

如您所见,变量2与变量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

你将如何进行?我想我应该尝试在循环中重新编码 Variable2..我尝试通过操作字符串,但没有解决问题..

最佳答案

这会起作用。首先让我们构建数据。

values <- paste0("0000000", 1:4)
library(data.table)
dt <- data.table(val = sample(values, 10, replace = TRUE))

for 循环足以定义新列。

for(level_var in dt[, unique(val)]){
dt[, eval(level_var) := ifelse(val == level_var, level_var, 0)]
}

关于r - 通过将一个变量拆分为多个变量来创建新列(在 R 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com