Noting your actual attempted solution posted in the comment to @ChristopherLouden’s answer, which looks suspiciously like the solution offered by @Jilber to a question from earlier today, I can finally reproduce your problem and offer a solution.
For the sake of simplicity, here’s a much smaller data.frame to start our work with. Note that the data.frame has two non-numeric columns (one character and one factor). Something as small as this is sufficient to demonstrate your problem and is much easier for others to follow.
data <- structure(list(Name = c("a", "b", "c", "d"),
time1 = c(6692.50136510743, 41682.9111356503, 405946.374877924,
4640.34876265179), time2 = c(14404.8414547167, 40466.9047986558,
638019.540242027, 2397.71968447607), time3 = c(10146.3608040476,
34148.4389867747, 459639.431186888, 10490.8359468475),
New = structure(1:4, .Label = c("A", "B", "C", "D"),
class = "factor")), .Names = c("Name", "time1", "time2", "time3",
"New"), class = "data.frame", row.names = c(NA, 4L))
data
# Name time1 time2 time3 New
# 1 a 6692.501 14404.84 10146.36 A
# 2 b 41682.911 40466.90 34148.44 B
# 3 c 405946.375 638019.54 459639.43 C
# 4 d 4640.349 2397.72 10490.84 D
Here is your current solution, complete with strange “shifting” of column means.
df <- suppressWarnings(
rbind(data, colMeans=colMeans(data[, sapply(data, is.numeric)])))
df
# Name time1 time2 time3 New
# 1 a 6692.501 14404.84 10146.36 A
# 2 b 41682.911 40466.90 34148.44 B
# 3 c 405946.375 638019.54 459639.43 C
# 4 d 4640.349 2397.72 10490.84 D
# colMeans 114740.534035333 173822.252 128606.27 114740.53 <NA>
The solution I’m offering makes use of rbind.fill from “plyr” to bind the results to your original data.frame. The results are calculated only on the numeric columns of your original data.frame.
library(plyr) ## For `rbind.fill`
useme <- sapply(data, is.numeric)
rbind.fill(data, data.frame(t(colMeans(data[useme]))))
# Name time1 time2 time3 New
# 1 a 6692.501 14404.84 10146.36 A
# 2 b 41682.911 40466.90 34148.44 B
# 3 c 405946.375 638019.54 459639.43 C
# 4 d 4640.349 2397.72 10490.84 D
# 5 <NA> 114740.534 173822.25 128606.27 <NA>
mean(data$time1) ## Just for verification...
# [1] 114740.5
0
solved colSums – shifted results