У меня есть кадр данных, где я хотел бы добавить дополнительную строку, которая суммирует значения для столбцов. Например, предположим, что у меня есть эти данные:
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.
Какой лучший способ сделать это?