【发布时间】:2021-11-19 05:22:11
【问题描述】:
目的
假设我有四个变量:两个变量是原始变量,另外两个变量是原始变量的预测。 (在实际数据中,原始变量的数量更多)
我想使用for loop 和mutate 创建计算原始变量和预测变量之间差异的列。样本数据和当前方法如下:
样本数据
set.seed(10000)
id <- sample(1:20, 100, replace=T)
set.seed(10001)
dv.1 <- sample(1:20, 100, replace=T)
set.seed(10002)
dv.2 <- sample(1:20, 100, replace=T)
set.seed(10003)
pred_dv.1 <- sample(1:20, 100, replace=T)
set.seed(10004)
pred_dv.2 <- sample(1:20, 100, replace=T)
d <-
data.frame(id, dv.1, dv.2, pred_dv.1, pred_dv.2)
当前方法(有错误)
original <- d %>% select(starts_with('dv.')) %>% names(.)
pred <- d %>% select(starts_with('pred_dv.')) %>% names(.)
for (i in 1:length(original)){
d <-
d %>%
mutate(diff = original[i] - pred[i])
l <- length(d)
colnames(d[l]) <- paste0(original[i], '.diff')
}
错误:
mutate()输入diff有问题。 # x 非数字 二元运算符的参数 # ℹ 输入diff是original[i] - pred[i]。
【问题讨论】:
-
chain_sort来自哪里? -
@TarJae 很抱歉造成混乱!这是一个自定义函数。