R唯一值计数

R唯一值计数,r,count,unique,R,Count,Unique,我有一个data.frame,它有4列。第2列为每个个体的唯一ID(“Cofecha”),第4列为给定个体所属的绘图(“绘图”)。在data.frame中,每个个体都多次出现。我试着做两件事:(1)得到唯一个体的数量,然后(2)找出每个情节中出现的唯一个体数量。我可以找到全部独特个体的数量(摘录中有4个),但我不知道如何计算每个地块的个体数量。任何帮助都将不胜感激 摘自原始data.frame: dx1使用子字符串: table(substr(dx1$Cofecha, 1,3)) 给我 AP1

我有一个data.frame,它有4列。第2列为每个个体的唯一ID(“Cofecha”),第4列为给定个体所属的绘图(“绘图”)。在data.frame中,每个个体都多次出现。我试着做两件事:(1)得到唯一个体的数量,然后(2)找出每个情节中出现的唯一个体数量。我可以找到全部独特个体的数量(摘录中有4个),但我不知道如何计算每个地块的个体数量。任何帮助都将不胜感激

摘自原始data.frame:

dx1使用子字符串:

table(substr(dx1$Cofecha, 1,3))
给我

AP1 AP3 IR1 SM2 
  9   2   9   5

使用“唯一”按钮对每一个进行一次计数:

table(substr(unique(dx1$Cofecha), 1,3))
# AP1 AP3 IR1 SM2 
#   1   1   1   1
使用子字符串:

table(substr(dx1$Cofecha, 1,3))
给我

AP1 AP3 IR1 SM2 
  9   2   9   5

使用“唯一”按钮对每一个进行一次计数:

table(substr(unique(dx1$Cofecha), 1,3))
# AP1 AP3 IR1 SM2 
#   1   1   1   1
你可以试试

with(dx1, tapply(as.character(Cofecha), list(Plot), FUN=function(x) length(unique(x))))
#    AP1 AP3 IR1 SM2 
#     1   1   1   1 

你可以试试

with(dx1, tapply(as.character(Cofecha), list(Plot), FUN=function(x) length(unique(x))))
#    AP1 AP3 IR1 SM2 
#     1   1   1   1 


以下是另一种方法:

library(dplyr)
dx1 %>%
  group_by(Plot) %>%
  summarize(distint_IDs = n_distinct(Cofecha))

#Source: local data frame [4 x 2]
#
#  Plot distint_IDs
#1  AP1           1
#2  AP3           1
#3  IR1           1
#4  SM2           1
还有一种可能性是使用基本R:

unlist(lapply(split(dx1, dx1$Plot), function(x) length(unique(x$Cofecha))))
#AP1 AP3 IR1 SM2 
#  1   1   1   1 

以下是另一种方法:

library(dplyr)
dx1 %>%
  group_by(Plot) %>%
  summarize(distint_IDs = n_distinct(Cofecha))

#Source: local data frame [4 x 2]
#
#  Plot distint_IDs
#1  AP1           1
#2  AP3           1
#3  IR1           1
#4  SM2           1
还有一种可能性是使用基本R:

unlist(lapply(split(dx1, dx1$Plot), function(x) length(unique(x$Cofecha))))
#AP1 AP3 IR1 SM2 
#  1   1   1   1 

这适用于计算每个绘图的总出现次数,但我想计算每个唯一的个体。在上面的例子中,我在AP1中只有一个独特的个体(但该个体有9个观察值)。有没有办法获得唯一的个人计数?是的。上述AP1的计数为9;但这9个计数中的每一个都是针对单个个体的:AP1A001。我想找到一种方法,只计算每个人一次。太好了!谢谢你的选择!这适用于计算每个绘图的总出现次数,但我想计算每个唯一的个体。在上面的例子中,我在AP1中只有一个独特的个体(但该个体有9个观察值)。有没有办法获得唯一的个人计数?是的。上述AP1的计数为9;但这9个计数中的每一个都是针对单个个体的:AP1A001。我想找到一种方法,只计算每个人一次。太好了!谢谢你的选择!这张
表格(dx1$Plot)
是否与
表格(substr(dx1$Cofecha,1,3))相同。或者是带有(dx1,tapply(as.character(Cofecha),list(Plot),FUN=function(x)length(unique(x)))的
?最后一个选项正是我想要的!表(dx1$Plot)和表(substr(dx1$Cofecha,1,3))的输出大致相同。但你的最后一个解决方案非常有效;这正是我想做的。谢谢这张
表格(dx1$Plot)
是否与
表格(substr(dx1$Cofecha,1,3))相同。或者是带有(dx1,tapply(as.character(Cofecha),list(Plot),FUN=function(x)length(unique(x)))的
?最后一个选项正是我想要的!表(dx1$Plot)和表(substr(dx1$Cofecha,1,3))的输出大致相同。但你的最后一个解决方案非常有效;这正是我想做的。谢谢第一种选择效果很好。我从未想过使用apply函数。非常感谢!第一种选择效果很好。我从未想过使用apply函数。非常感谢!