【发布时间】:2020-09-04 07:42:09
【问题描述】:
我有 2 个向量(respose 和 pca)和 1 个列表(test),我想将它们与 expand.grid 一起使用:
final = rbind(
expand.grid(response = response,pre1=test[[1]],pre2=pca[1],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[2]],pre2=pca[2],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[3]],pre2=pca[3],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[4]],pre2=pca[4],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[5]],pre2=pca[5],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[6]],pre2=pca[6],stringsAsFactors = FALSE),
expand.grid(response = response,pre1=test[[7]],pre2=pca[7],stringsAsFactors = FALSE)
)
重复代码太多,我重写代码使用map_dfr:
final2 <- map_dfr(1:7,
~ expand.grid(response = response,pre1=test[[.]],pre2=pca[.],stringsAsFactors = FALSE))
那我也想用pmap_dfr做这个但是报错:
agrg.list = list(response = response, pre1 = test, pre2 = pca)
final3 <- pmap_dfr(agrg.list,
~expand.grid(response = response, pre1 = unlist(pre1), pre2= pre2, stringsAsFactors = F))
错误:
.l的元素 1 的长度必须为 1 或 7,而不是 5
我想知道代码是否只能由map_dfr 而不是pamp_dfr 重写。
任何帮助将不胜感激!
这是我的 2 个向量和 1 个列表:
test <- list(c("PM2_5_s_lag_1", "PM2_5_m_lag_1", "PM2_5_s_lag_2", "PM2_5_m_lag_2",
"PM2_5_s_lag_3", "PM2_5_m_lag_3"), c("pca_PMC", "PMC_s_lag_1",
"PMC_m_lag_1", "PMC_s_lag_2", "PMC_m_lag_2", "PMC_s_lag_3", "PMC_m_lag_3"
), c("pca_PM10", "PM10_s_lag_1", "PM10_m_lag_1", "PM10_s_lag_2",
"PM10_m_lag_2", "PM10_s_lag_3", "PM10_m_lag_3"), c("NO2_s_lag_1",
"NO2_m_lag_1", "NO2_s_lag_2", "NO2_m_lag_2", "NO2_s_lag_3", "NO2_m_lag_3"
), c("SO2_s_lag_1", "SO2_m_lag_1", "SO2_s_lag_2", "SO2_m_lag_2",
"SO2_s_lag_3", "SO2_m_lag_3"), c("CO_s_lag_1", "CO_m_lag_1",
"CO_s_lag_2", "CO_m_lag_2", "CO_s_lag_3", "CO_m_lag_3"), c("O3_s_lag_1",
"O3_m_lag_1", "O3_s_lag_2", "O3_m_lag_2", "O3_s_lag_3", "O3_m_lag_3"
))
pca <- c("pca_pm2_5", "pca_PMC", "pca_PM10", "pca_NO2", "pca_SO2", "pca_CO",
"pca_O3")
response <- c("X0.whole", "X0.man", "X0.woman", "X0.agelo65", "X0.ageupwith65"
)
【问题讨论】:
-
pca和response应该有相同的长度,response[7] 不存在