【发布时间】:2019-01-26 22:52:19
【问题描述】:
我想根据两个条件从一个现有向量(在数据集中)创建多个向量
现在我有一个数据集 (DCE_unformat),其中包含一个向量“包装”,它有 4 个级别:“容器”、“托盘”、“容器和托盘”或“其他”。现在我想根据向量DCE_unformat$Packaging 基于 2 个条件创建 3 个向量:
第一个向量:== 1 如果DCE_unformat$Packaging == "container" 的值,== -1 如果包装的值== "other",0 否则
第 2 和第 3 个向量相同,但与其他 2 种包装类型不同。
现在我编写了一个 for 循环,其中包含一个嵌套的 if 语句,用于执行这项工作的每个条件,但对于未来的任务,我想知道这是否可以更方便地完成。
DCE_unformat <- read.csv2(paste(getwd(),"/Data/data.csv",sep=""), header = TRUE)
DCE_unformat$P1 <- rep(0,4000)
DCE_unformat$P2 <- rep(0,4000)
DCE_unformat$P3 <- rep(0,4000)
for (i in 1:4000) {
if(DCE_unformat$Packaging[i] == "pallet") {
DCE_unformat$P1[i] <- 1
} else if (DCE_unformat$Packaging[i] == "container") {
DCE_unformat$P2[i] <- 1
} else if (DCE_unformat$Packaging[i] == "container en pallet") {
DCE_unformat$P3[i] <- 1
} else if (DCE_unformat$Packaging[i] == "other") {
DCE_unformat$P1[i] <- -1
DCE_unformat$P2[i] <- -1
DCE_unformat$P3[i] <- -1
}
}
【问题讨论】:
-
对我来说,您似乎想从包装因素中创建一个虚拟变量。有一个名为 fastDummies 的包可以轻松创建虚拟对象:cran.r-project.org/web/packages/fastDummies/fastDummies.pdf,示例:rdrr.io/cran/fastDummies/man/dummy_cols.html
标签: r