我有以下问题:
我的数据框如下所示,尽管它更大(20GB):
Letters <- c("A","B","C")
Numbers <- c(1,0,1)
Numbers <- as.integer(Numbers)
Data.Frame <- data.frame(Letters,Numbers)
现在我想为字母创建一个虚拟变量并编写以下 for 循环:
for(level in unique(Data.Frame$Letters)){Data.Frame[paste("", level, sep = "")]
<- ifelse(Data.Frame$Letters == level, 1, 0)}
因为我的数据框很大,虽然它需要很长时间才能执行。我尝试的另一个可能的解决方案是:
factors <- model.matrix(~Letters-1, data=Data.Frame)
cbind(Data.Frame, factors)
结果是一样的,但是当我在更大的数据帧上使用它时,它需要更长的时间。
是否有任何可能的替代方案,它们会产生相同的解决方案并且计算速度更快?
非常感谢您!