-3

我根据以下因素拆分了一些数据:

 a <- factor(data$fact)
 b <- split(data,a)

现在我想将一些因素加在一起,例如

tot <- b$A+b$B

但我收到以下错误,

"sum" not meaningful for factors

任何帮助都会很棒。

aaa val1 val2 ...
aaa
bbb
bbb
ccc
ccc

现在,如果我分成因素,我有三个。但我希望例如 aaa 和 ccc 一起考虑。这意味着应将另一列中的值相加。

谢谢

4

2 回答 2

1

在拆分之前创建一个新的因子变量:

# Make up some data
df = data.frame(Cases = sample(LETTERS[1:5], 10, replace=TRUE),
                Set1 = 1:10, Set2 = 11:20)
# Duplicate your cases column
df$Cases_2 = df$Cases
# Create a new set of factor levels
levels(df$Cases_2) <- ifelse(levels(df$Cases_2) %in% c("A","B"), 
                             "AB", levels(df$Cases_2))
temp = split(df[-c(1, 4)], df$Cases_2)
temp
# $AB
#   Set1 Set2
# 3    3   13
# 5    5   15
# 6    6   16
# 8    8   18
# 
# $C
#   Set1 Set2
# 4    4   14
# 9    9   19
# 
# $D
#    Set1 Set2
# 2     2   12
# 7     7   17
# 10   10   20
# 
# $E
#   Set1 Set2
# 1    1   11

然后使用lapply计算colSums

lapply(temp, colSums)
# $AB
# Set1 Set2 
#   22   62 
# 
# $C
# Set1 Set2 
#   13   33 
# 
# $D
# Set1 Set2 
#   19   49 
# 
# $E
# Set1 Set2 
#    1   11
于 2012-07-10T12:38:46.760 回答
0

您可能希望使用以下方法组合生成的数据帧rbind

tot <- rbind(b$A, b$B)
于 2012-07-10T11:10:46.100 回答