下面是样本表/数据框。第三个属性(count)将给出相似行的计数(attribute1 + attribute2)
╔════╦═════════════╦═════════════╦══════════════════════════════╗
║ ID ║ Attribute 1 ║ Attribute 2 ║ count(Attribute1+Attribute2) ║
╠════╬═════════════╬═════════════╬══════════════════════════════╣
║ 1 ║ A ║ AA ║ 3 ║
║ 2 ║ B ║ CC ║ 1 ║
║ 3 ║ C ║ BB ║ 2 ║
║ 4 ║ A ║ AA ║ 3 ║
║ 5 ║ C ║ BB ║ 2 ║
║ 6 ║ D ║ AA ║ 1 ║
║ 7 ║ B ║ AA ║ 1 ║
║ 8 ║ C ║ DD ║ 1 ║
║ 9 ║ A ║ AB ║ 1 ║
║ 10 ║ A ║ AA ║ 3 ║
╚════╩═════════════╩═════════════╩══════════════════════════════╝
更新:
感谢akrun
和danas.zuokas
寻求帮助。
我期待的最终输出看起来像这样。我从每个计数组中选择50%.ex:对于ID 1,4,10,计数为3.我需要为每个计数组选择2(50%),因此我应该得到(A,AA)两次
ID Attribute 1 Attribute 2 count(Attribute1+Attribute2)
1 A AA 3
2 B CC 1
3 C BB 2
4 A AA 3
6 D AA 1
7 B AA 1
8 C DD 1
9 A AB 1
答案 0 :(得分:5)
鉴于您的数据位于df
:
library(data.table)
dt <- as.data.table(df)
dt[, count := .N, by = list(Attribute1, Attribute2)]
答案 1 :(得分:2)
我们可以尝试
library(dplyr)
df1 %>%
group_by(attribute1, attribute2) %>%
mutate(Count= n())