r - “较长的对象长度不是较短对象长度的倍数”
问题描述
我有这个数据集 -
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
我想计算每个值出现在另一个数据集中的次数,它看起来完全一样,但从不同的时间段提取数据。另一个数据集称为df2
。
我使用了这段代码 -
x <- df %>%
mutate(reference = length(df2[df2$object == object,]$object))
它给了我这个错误:longer object length is not a multiple of shorter object length
。
当我在 dplyr 之外运行它时它可以工作,就像这样 -
object <- "apple"
length(df2[df2$object == object,]$object)
我可以做这样的相对参考,包括object
在过滤器中吗?
解决方案
根据我的评论:dplyr 函数适用于作为向量的整个列。尝试
df %>%
rowwise() %>%
mutate(reference = length(df2[df2$object == object,]$object))%>%
ungroup()
正如您所说,ungroup
将需要,除非您计划进行进一步的逐行操作。
推荐阅读
- odata - 如何在 SET_GET_ENTITY 方法中为“数量”类型的字段编写 SELECT?
- sql - 是否可以在 WHERE 子句中使用 IF 语句并根据不同的 IF 值使用 INTO 语句?
- codenameone - 代号一 DateSpinner
- html - 我不能在我的网站上使用徽章和标签
- android - 搜索已使用和未使用的功能
- python-3.x - 如何编写 python 代码将数据附加到 json 列表
- javascript - 如何将 c# 对象从桌面应用程序拖放到网页?
- testing - 视频路径问题
- xamarin - 将 BoxView 或 Frame 的高度绑定到 Xamarin 中的(隐藏的)NavigationBar
- python - 使用 Flask-Injector 和 Flask-restplus 调用 api 资源时出错