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