我是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");
答案 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