首页 > 解决方案 > 通过对现有列的组合执行计算来创建多个数据框列

问题描述

我想创建许多数据框列,这些列对应于对单个现有列的不同组合执行的相同计算的结果。

例如,假设特定问题是跟踪线上点之间的距离。我的初始数据框看起来像这样,其中 x 是点的位置:

points <- data.frame(x = c(1, 2, 3, 4, 5))

对于每个点,我想计算彼此之间的距离并将它们存储为单独的列,例如d1d2d3d4d5

我可以使用以下方法手动添加一列:

points$d1 <- lapply(points$x, function(x) abs(x - points$x[1]))

我遇到过几次这样的问题,我的直觉告诉我有更好的方法来做到这一点。无论是否有像mutatefrom这样的简洁解决方案,dplyr或者我必须编写一个更大的函数,我都希望尽可能避免for循环。

我也完全有可能在描述这个问题时使用了错误的术语。

标签: rdataframe

解决方案


推荐阅读