如果Dataframe中的值超过该列的平均值,则替换它们

时间:2017-10-08 09:50:24

标签: r dataframe data-science

数据框中有三列。什么可以是R中的优化代码,如果它超过特定变量的平均值,则可以首先检查该值,然后将其替换为均值。 P.S:所有三个变量的均值都不同。

1 个答案:

答案 0 :(得分:0)

此处的一个基本选项是使用ifelse()函数创建新变量。对于优化代码,您可以使用data.table包。

data <- mtcars[, 1:3]

library(data.table)
setDT(data)
# look at means
mean(data$mpg) #20.09062
mean(data$cyl) #6.1875
mean(data$disp) #230.7219

# new variables
data[, mpg_new := ifelse(mpg > mean(mpg), mean(mpg), mpg)]
data[, cyl_new := ifelse(cyl > mean(cyl), mean(cyl), cyl)]
data[, disp_new := ifelse(disp > mean(disp), mean(disp), disp)]