gpt4 book ai didi

r - 计算与列均值的距离的新数据帧变量

转载 作者:行者123 更新时间:2023-12-05 08:29:21 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据框。

<表类="s-表"><头>用户V1V2V3<正文>吉姆.34.33.88大卫.54.34.71斯科特.12.25.12弗兰克.76.76.44道格.68.09.54汤姆.91.67.92

但是我想计算一个新的变量。我希望通过从列的平均值中减去相应变量(V1_DISTfromMEANV2_DISTfromMEANV3_DISTfromMEAN)中的每个观察值来计算新变量(V1V2V3)。例如,V1 列的平均值是 0.55。所以对于 Jim,我希望方程式为 .34 - .55 = -0.21。对于 V1_DISTfromMean .生成的数据框看起来类似于下面的数据框,其中填充了所有值。

<表类="s-表"><头>用户V1V2V3V1_DISTfromMEANV2_DISTfromMEANV1_DISTfromMEAN<正文>吉姆.34.33.88- .21??????大卫.54.34.71- .01??????斯科特.12.25.12?????????弗兰克.76.76.44?????????道格.68.09.54?????????汤姆.91.67.92?????????

如有任何帮助,我们将不胜感激。如果我未能包含所有必要的数据,请告诉我。

最佳答案

使用 colMeans 获取均值向量,从输入数据集中减去,注意 R 的表操作按列主要顺序排列,将原始数据与结果绑定(bind)。

df1 <- read.table(text = "
User V1 V2 V3
Jim .34 .33 .88
David .54 .34 .71
Scott .12 .25 .12
Frank .76 .76 .44
Doug .68 .09 .54
Tom .91 .67 .92
", header = TRUE)

mu <- colMeans(df1[-1])
tmp <- t(t(df1[-1]) - mu)
colnames(tmp) <- paste(colnames(tmp), "DISTfromMEAN", sep = "_")
df2 <- cbind(df1, tmp)
rm(tmp)

df2
#> User V1 V2 V3 V1_DISTfromMEAN V2_DISTfromMEAN V3_DISTfromMEAN
#> 1 Jim 0.34 0.33 0.88 -0.21833333 -0.07666667 0.27833333
#> 2 David 0.54 0.34 0.71 -0.01833333 -0.06666667 0.10833333
#> 3 Scott 0.12 0.25 0.12 -0.43833333 -0.15666667 -0.48166667
#> 4 Frank 0.76 0.76 0.44 0.20166667 0.35333333 -0.16166667
#> 5 Doug 0.68 0.09 0.54 0.12166667 -0.31666667 -0.06166667
#> 6 Tom 0.91 0.67 0.92 0.35166667 0.26333333 0.31833333

reprex package 创建于 2022-03-02 (v2.0.1)

关于r - 计算与列均值的距离的新数据帧变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71327539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com