我有这样的事情:
Date Point1 Point2 Point3
01-03-2000 23 57 98
02-03-2000 67 36 77
03-03-2000 67 25 47
...
我想用类似的函数得到每列的总和colSums
,但我的第一列不是数字,是字符类型。我如何得到总和?
如果dat
是您的数据框,您可以尝试
colSums(dat[ , -1])
这将返回除第一列(带有日期的列)之外的每一列的总和。
更通用的解决方案:
# set up some fake data with text and numeric columns
numchr <- list(1:3,letters[1:3])
test <- data.frame(numchr[sample(1:2,10,replace=TRUE)])
names(test) <- letters[1:10]
# which looks like...
> test
a b c d e f g h i j
1 1 a a a a 1 a 1 1 a
2 2 b b b b 2 b 2 2 b
3 3 c c c c 3 c 3 3 c
# get the sums only for the numeric columns
colSums(test[sapply(test,is.numeric)])
a f h i
6 6 6 6
另一种可能性(使用@thelatemail 的示例):
library(plyr)
numcolwise(sum)(test)