【发布时间】:2021-12-15 09:23:12
【问题描述】:
我需要生成一个表格,计算每个站点的因子的新水平。 我的代码是这样的
# Data creation
f = c("red", "green", "blue", "orange", "yellow")
f = factor(f)
d = data.frame(
site = 1:10,
color1= c(
"red", "red", "green", "green", "green",
"blue","green", "blue", "orange", "yellow"
),
color2= c(
"green", "green", "green", "blue","green",
"blue", "orange", "yellow","red", "red"
)
)
d$color1 = factor( d$color1 , levels = levels(f) )
d$color2 = factor( d$color2 , levels = levels(f) )
d
它显示了这张桌子
我需要计算每个新站点中有多少新颜色。只计算第一次出现,不重复。生成了一个像这样的表。
是否有 dplyr 方法可以找到此输出?
【问题讨论】:
-
谢谢@Nuclear0302704 我也认为可以使用未重复或类似命令的变体,但没有成功。
-
您能否澄清一下您的意思是计算“每个站点不重复”?因为如果您确实在寻找每个站点,那么也在例如第 2 行两个值都不重复。
-
谢谢@deschen,第二行是 0,因为它们不是新颜色。我们算在第 1 行。新颜色在第 4 行和第 7 行...
-
但为什么第 9 行出现了新颜色?橙色已经在第 7 行,红色已经在第 1 行。
-
是的,你是对的。 newColors 中的第 9 行应为 0。
标签: r dplyr counting factors levels