【发布时间】:2018-07-19 01:43:07
【问题描述】:
我有一个由 1000 行和 10 列组成的 data.frame (df.x)。最后一列是每一行的类别/标签(即df.x$lbl)。
df.x <- data.frame(replicate(9,sample(0:100,1000,rep=TRUE)))
df.x$lbl <- (replicate(1,sample(0:15,1000,rep=TRUE)))
然后我将此 data.frame 聚合到基于 (df.x.agg) 的“lbl”列。现在我有两个 data.frames:
df.x.agg <- aggregate(df.x[, 1:ncol(df.x)], list(df.x$lbl), mean)
df.x.agg <- df.x.agg[,2:ncol(df.x.agg)]
我想要做的是重写df.x 中第一列X1 的每个值,方法是将df.x 的每个值与df.x.agg 中第一列的所有值进行比较,并将其替换为标签df.x.agg 中具有最接近值的那一行。这应该针对df.x 的每一列进行。所以输出将是一个新的df.x(即new.df.x),其中填充了标签而不是数字。
非常感谢您的帮助。
【问题讨论】: