R 打印列中具有相同值的行中的级别计数
假设我有一个数据帧R 打印列中具有相同值的行中的级别计数,r,count,R,Count,假设我有一个数据帧df: c1 c2 A porcupine A snail A snail B porcupine B snail B goose 我想使用此数据帧生成另一个数据帧,该数据帧报告c2中与c1中唯一字符串相对应的不同值的计数。因此,在上面的例子中,它看起来是这样的: v1 v2 A 2 B 3 因为c2中只有两个不同的值在c1中以“A”作为字符串,而c2中有三个不同的值在c1中以“B”作为字符串 我猜我需要使用sappl
df
:
c1 c2
A porcupine
A snail
A snail
B porcupine
B snail
B goose
我想使用此数据帧生成另一个数据帧,该数据帧报告c2
中与c1
中唯一字符串相对应的不同值的计数。因此,在上面的例子中,它看起来是这样的:
v1 v2
A 2
B 3
因为c2
中只有两个不同的值在c1
中以“A”作为字符串,而c2
中有三个不同的值在c1
中以“B”作为字符串
我猜我需要使用sapply,但我不确定如何使用。使用
dplyr
,df%>%groupby(c1)%%>%summary(v2=n_distinct(c2))
或使用base R聚合(c2~c1,df,函数(x)长度(unique(x))
。@Ronak Shah:对不起,我的答案几乎相同,我在recaptcha框中识别交通灯,这使我的答案迟到了。@Lenny没有问题,应该始终遵循“交通灯”;-)
aggregate(c2 ~ c1, df, function(x) length(unique(x)))
c1 c2
1 A 2
2 B 3