问题
我正在尝试修改当前采用嵌套 for 循环形式的代码,以便它在不依赖循环的情况下实现相同的结果,如果可能的话,以提高可读性并促进故障排除。我将介绍我实际尝试做的事情的真正简化版本。任何有助于避免循环的建议将不胜感激。
我有一个带有 2 个变量(x,y)的数据框(df)。对于 x1 的值,我想减去 y 的每个值。然后我想对 x2 到 xi 重复这个。
这是帮助说明的图像:
我试过的
一个简单的可重现示例:
数据:
x <- c(221.7, 285.9, 22.3, 67.2, 133.2)
y <- c(121.5, 193.8, 226.2, 313.6, 17.9)
df <- as.data.frame(cbind(x,y))
Run Code Online (Sandbox Code Playgroud)
循环:
outcome <- c()
for (i in seq(1,length(df$x),1)){
eachX <- df[i,1]
outcome[[i]] <- df$y-eachX
}
outcome
Run Code Online (Sandbox Code Playgroud)
我需要帮助的地方
这种方法依赖于 for 循环,我的印象是通常可以避免 for 循环。
提前致谢!