我有这个数据集 -
print(df)
object group
1 apple A
1 banana B
1 pear A
1 robot C
print(df2)
object group
1 apple A
1 apple B
1 apple A
1 robot C
1 robot C
1 robot C
1 banana C
Run Code Online (Sandbox Code Playgroud)
我想计算每个值在另一个数据集中出现的次数,该数据集看起来完全相同,但从不同的时间段提取数据。另一个数据集称为df2.
我使用了这段代码 -
x <- df %>%
mutate(reference = length(df2[df2$object == object,]$object))
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:longer object length is not a multiple of shorter object length。
当我在 dplyr 之外运行它时,它会起作用,如下所示 -
object <- "apple"
length(df2[df2$object == object,]$object)
Run Code Online (Sandbox Code Playgroud)
我可以做这样的相对引用,包括object在过滤器中吗?
根据我的评论: dplyr 函数适用于作为向量的整个列。尝试
df %>%
rowwise() %>%
mutate(reference = length(df2[df2$object == object,]$object))%>%
ungroup()
Run Code Online (Sandbox Code Playgroud)
正如您所说,ungroup除非您计划进行进一步的行操作,否则将需要。