如何从特定变量的平均值中减去每个变量的平均值

时间:2015-08-31 13:55:40

标签: r dataframe

我想从名为'birds'的变量的平均值中减去每个变量的平均值,并创建一个包含结果的新数据框。在我的实际数据框中,我有数百个变量,所以我想自动完成。任何想法怎么做? 我尝试使用这行代码而没有平均函数,它可以工作(在同一个数据框上):

setNames(as.data.frame(cbind(g, mean(dat$birds)-mean(dat))), c(names(dat), paste0(names(dat),'_new')))

但我不明白如何使用mean作为代码的一部分,我试过:

setNames(as.data.frame(cbind(g, mean(dat$birds)-mean(dat))), c(names(dat), paste0(names(dat),'_new')))

这是我的玩具数据框。

dat <- read.table(text = " birds    wolfs     snakes
                    3        9         7
                    3        8         4
                    1        2         8
                    1        2         3
                    1        8         3
                    6        1         2
                    6        7         1
                    6        1         5
                    5        9         7
                    3        8         7
                    4        2         7
                    1        2         3
                    7        6         3
                    6        1         1
                    6        3         9
                    6        1         1   ",header = TRUE)

1 个答案:

答案 0 :(得分:3)

我希望我能正确理解你的问题。 这应该创建一个新对象,在这种情况下 - 只是一个向量,其中“birds”列的意思是从其他列的平均值中减去。这也适用于任何大小的数据框。

mean=mean(dat$birds)
dat2=colMeans(dat[2:dim(dat)[2]])-mean

将来,请提供可重复的示例(在您的代码中,未定义对象'g')和预期输出的示例,以便明确您要实现的目标。

相关问题