У меня есть фрейм данных, в который я хотел бы добавить дополнительную строку, которая суммирует значения для столбцов.Например, допустим, у меня есть эти данные:
x <- data.frame(Language=c("C++", "Java", "Python"),
Files=c(4009, 210, 35),
LOC=c(15328,876, 200),
stringsAsFactors=FALSE)
Данные выглядят так:
Language Files LOC
1 C++ 4009 15328
2 Java 210 876
3 Python 35 200
Мой инстинкт должен сделать это:
y <- rbind(x, c("Total", colSums(x[,2:3])))
Иэто работает, он вычисляет итоги:
> y
Language Files LOC
1 C++ 4009 15328
2 Java 210 876
3 Python 35 200
4 Total 4254 16404
Проблема в том, что все столбцы Files и LOC были преобразованы в строки:
> y$LOC
[1] "15328" "876" "200" "16404"
Я понимаю, что это происходит, потому что ясоздал вектор c("Total", colSums(x[,2:3])
с входными данными, которые являются как числами, так и строками, и он преобразует все элементы в общий тип, чтобы все элементы вектора были одинаковыми.Затем то же самое происходит с колонками Files и LOC.
Какой лучший способ сделать это?