如果它大于该列的平均值,则替换 Dataframe 中的值
Replacing values in Dataframe if its more than the mean of that column
数据框中有三列。什么可以是 R 中的优化代码,它可以首先检查值是否超过特定变量的平均值,然后用平均值替换它。
P.S:三个变量的均值不同。
此处的一个基本选项是使用 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)]
数据框中有三列。什么可以是 R 中的优化代码,它可以首先检查值是否超过特定变量的平均值,然后用平均值替换它。 P.S:三个变量的均值不同。
此处的一个基本选项是使用 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)]