1

我有这样的事情:

Date        Point1 Point2 Point3
01-03-2000     23     57    98
02-03-2000     67     36    77 
03-03-2000     67     25    47 
... 

我想用类似的函数得到每列的总和colSums,但我的第一列不是数字,是字符类型。我如何得到总和?

4

3 回答 3

5

如果dat是您的数据框,您可以尝试

colSums(dat[ , -1])

这将返回除第一列(带有日期的列)之外的每一列的总和。

于 2012-11-05T07:07:31.327 回答
4

更通用的解决方案:

# 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
于 2012-11-05T12:20:01.553 回答
1

另一种可能性(使用@thelatemail 的示例):

library(plyr)
numcolwise(sum)(test)
于 2012-11-05T12:36:25.023 回答