R:合并因子级别并在合并列中创建总和

时间:2014-03-23 22:45:44

标签: r r-factor

我是R的初学者,这让我疯狂。

我有一个数据框:

someData = data.frame(Term=c('a', 'b', 'c', 'd', 'a', 'a', 'c', 'c'), Freq=c(1:8), Category=c(1,2,1,2,1,2,1,2));
someData$Term = as.factor(someData$Term)
someData$Category = as.factor(someData$Category)

并希望将术语a和c(两个因素)组合成x,同时对各自的频率求和,同时保持类别,以便得到以下结果数据帧:

Term Freq Category
x    16       1
b    2        2
d    4        2
x    14       2

以下代码仅将所有名称更改为x,但不对其值求和。

combine <- c("a", "c");
levels(somedata$Term)[levels(somedata$Term) %in% combine] <- paste("x");

1 个答案:

答案 0 :(得分:2)

这看起来有效:

#levels(someData$Term) = list(b = "b", d = "d", x = c("a", "c")) #just another approach
aggregate(Freq ~ Term + Category, someData, sum)
#  Term Category Freq
#1    x        1   16
#2    b        2    2
#3    d        2    4
#4    x        2   14