r - 按 R 中的变量分组,然后运行 dplyr case_when
问题描述
我想为我正在使用此代码的数据集中的每个组创建一个新变量:
data <- data %>%
group_by(Set_Number , Set_score) %>%
mutate(test = case_when(
lag(data$Serves_In_Fault) == "Serve In" ~ "Second Serve" ,
lag(data$Serves_In_Fault) == "Fault" ~ "First Serve"
)
)
虽然,这给了我一个错误
错误:列
test
的长度必须为 93(组大小)或 1,而不是 164
我想要数据集中每一行的值而不是每个组。请帮忙。
解决方案
问题是,你在它面前排位Servers_In_Fault
赛。data$
这样,您访问的是整个结构的新副本,而data
不是data
正在处理的结构。你已经在里面了data
,所以你不需要这样做。当您执行 agroup_by()
时,您正在处理数据框的子组,一次一个。因此,当您尝试处理大小为 93 的子组时,向它扔一个data
164 行的新副本时,大小不匹配。只要把data$
管子里面的东西去掉就没事了。
推荐阅读
- c - c中的while循环
- r - R中图像的傅里叶变换
- python - 装饰器如何绑定到 Flask 应用程序实例?
- c - 如何使用 Ncurses 在屏幕坐标中查找光标位置?
- sql - 记录在 SQL Server 中未按日期获取。找到 0 条记录
- php - PHP数组[key]请求时产生空值
- ruby-on-rails - Rails 5、Ckeditor、Cloudinary:无法上传本地图片
- certificate - Chrome 显示错误 NET::ERR_CERT_COMMON_NAME_INVALID 用于 CN 和主题备用名称设置正确的站点
- r - 绘制国家之间的联系
- php - 我没有在推送器中收到 api 消息(调试控制台)