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