考虑到整个数据集,我需要创建一个频率为两个条件(在每一行中定义)的新列。
请注意,我需要添加此信息并将所有行保留在之前的数据集中。
示例:
library(datasets)
mydata<-CO2
names(mydata)
[1] "Plant" "Type" "Treatment" "conc" "uptake"
假设我想使用变量&#39; Type&#39;和&#39;治疗&#39;作为我的条件。 所以,我需要为每一行计算相应的&#39; Type&#39;和&#39;治疗&#39;出现在整个数据集中。
答案 0 :(得分:3)
您可以使用ave
来计算每个分组对的长度:
mydata$freq <- ave(rep(1, nrow(mydata)), mydata$Type, mydata$Treatment, FUN = length)
head(mydata)
# Plant Type Treatment conc uptake freq
#1 Qn1 Quebec nonchilled 95 16.0 21
#2 Qn1 Quebec nonchilled 175 30.4 21
#3 Qn1 Quebec nonchilled 250 34.8 21
#4 Qn1 Quebec nonchilled 350 37.2 21
#5 Qn1 Quebec nonchilled 500 35.3 21
#6 Qn1 Quebec nonchilled 675 39.2 21
答案 1 :(得分:0)
您可以使用dplyr
包
library(dplyr)
mydata %>% group_by(Type,Treatment) %>% summarize(count = n())
将导致
# A tibble: 4 x 3
# Groups: Type [?]
Type Treatment count
<fctr> <fctr> <int>
1 Quebec nonchilled 21
2 Quebec chilled 21
3 Mississippi nonchilled 21
4 Mississippi chilled 21