R铸造罐';不处理唯一行

R铸造罐';不处理唯一行,r,casting,grouping,dcast,R,Casting,Grouping,Dcast,问题 我有cluster.id并对应于这些cluster.id,我有每个簇中不同的字母(作为简化) 我感兴趣的是在不同的集群中通常可以找到哪些字母(我使用了本文中的代码),但是我对找到每个字母的比例不感兴趣,所以我想删除重复的行(参见下面的代码)。 这似乎是可行的(没有错误),但是cast矩阵中填充了'NA'和字符串,而不是所需的计数(我在下面的代码注释中进一步解释了所有内容) 有没有解决这个问题的建议,或者这只是在筛选唯一行之后不可能的 代码 test.set% 变异(n.letters=

问题


我有
cluster.id
并对应于这些cluster.id,我有每个簇中不同的
字母
(作为简化)

我感兴趣的是在不同的集群中通常可以找到哪些字母(我使用了本文中的代码),但是我对找到每个字母的比例不感兴趣,所以我想删除重复的行(参见下面的代码)。

这似乎是可行的(没有错误),但是cast矩阵中填充了
'NA'
和字符串,而不是所需的计数(我在下面的代码注释中进一步解释了所有内容)

有没有解决这个问题的建议,或者这只是在筛选唯一行之后不可能的

代码


test.set%
变异(n.letters=n_distinct(letters))%>%
过滤器(n.字母>1)%>%
解组()%>%
选择(-n个字母)
测试集
#群集id字母
#   
#14A
#2.4 B
#34 B
#43A
#5 3 E
#6三维
#7.3 C
#8.2 A
#9.2 E
#我不想要重复的行,因为它们具有误导性。
#我只感兴趣的是哪几个字母是在同一个地方找到的
#不是以什么比例聚集
#因此,我想删除这些重复的行
test.set.unique%unique()

矩阵如果我们也查看消息,则在输出上方会有一条消息

缺少聚合函数:默认为长度

为了获得类似的输出,请指定
fun.aggregate

acast(test.set.unique, cluster.id ~ letters, length)
#  A B C D E
#2 1 0 0 0 1
#3 1 0 1 1 1
#4 1 1 0 0 0
当存在重复元素时,默认情况下,
length
会触发
fun.aggregate
。使用
unique
元素,在不指定
fun.aggregate
的情况下,它将假定一个
value.var
列,并填充该列的值,以获得OP的post

表(test.set)
acast(test.set.unique, cluster.id ~ letters, length)
#  A B C D E
#2 1 0 0 0 1
#3 1 0 1 1 1
#4 1 1 0 0 0