我根据以下因素分割了一些数据:
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一起考虑。这个测量应该总结另一列中的值。
由于
答案 0 :(得分: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
答案 1 :(得分:0)
您可能希望使用rbind
组合生成的数据框:
tot <- rbind(b$A, b$B)