R语言rsm包生成的中心复合设计(CCD)如何添加响应变量实测数据
解决方法
你生成的ccd对象本身就是标准R数据框结构,可直接对y列赋值替换NA,分两种常用场景操作:
场景1:实验按run.order顺序完成,实测值顺序和ccd的行顺序完全匹配
直接对y列赋值即可,示例代码如下:
# 先修正你原代码的语法问题:原ccd调用少了右括号 library(rsm) ccd <- ccd(y ~ x1+x2+x3, n0 = c(0,3), alpha = "rotatable", randomize = F, oneblock = T) # 假设你按行顺序测得的17个响应值存在y_measured向量中 y_measured <- c(你的17个实测数值,按ccd行顺序排列) # 直接赋值替换NA ccd$y <- y_measured
场景2:实测数据存在单独的数据框,担心顺序不匹配
如果你的实测值和对应编码变量存为了数据框exp_data(包含x1.as.is、x2.as.is、x3.as.is、y四列),可以通过变量匹配赋值,避免顺序错误:
# 基础R实现 ccd$y <- exp_data$y[match( paste(ccd$x1.as.is, ccd$x2.as.is, ccd$x3.as.is), paste(exp_data$x1.as.is, exp_data$x2.as.is, exp_data$x3.as.is) )] # 或用dplyr更简洁 library(dplyr) ccd <- ccd %>% select(-y) %>% # 先删掉原有的NA列 left_join(exp_data, by = c("x1.as.is", "x2.as.is", "x3.as.is"))
赋值完成后即可直接用ccd数据框进行后续响应面模型拟合。
内容的提问来源于stack exchange,提问作者Paul Lahner
相关产品推荐
相关产品推荐

