You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言处理tibble:相邻观测配对为新行及类型合并报错解决

错误原因

报错的核心是pivot_longer参数传递错误:tidyr 1.0.0之后的pivot_longer第一个必填参数是cols(指定要拉长的列),你没有显式标注cols = x1:x3,导致x1:x3被传给了后面的非位置参数,函数默认把所有列(包括整数类型的id列y)都进行拉长操作,字符列和整数列合并到同一个val列时触发类型冲突报错。你原本的实现逻辑是正确的,只需要修正参数写法即可。

修正后的实现代码

首先补全你缺失的y定义,保证示例可复现:

library(tidyverse)
# 补全id列y的定义
y <- 1:10
x1 <- c("cook", "clean", "wash", "walk", "wish", "broom", "clean", "wash", "walk", "cook")
x2 <- c("move", "climb", "skate", "ball", "climb", "jog", "job", "skate", "ball", "climb")
x3 <- c("try", "clean", "boom", "walk", "bring", "broom", "sing", "wash", "jump", "fly")

df <- tibble(y, x1, x2, x3)

修正后的处理代码,仅需给pivot_longer显式指定cols参数:

df %>% 
  pivot_longer(cols = x1:x3, names_to = "obs", values_to = "val") %>% 
  group_by(y) %>% 
  mutate(x1 = val, x2 = lead(val)) %>% 
  filter(!is.na(x2)) %>% 
  select(y, x1, x2)

输出效果示例

运行后得到的结果完全符合预期,前4行如下:

# A tibble: 20 × 3
# Groups:   y [10]
       y x1    x2   
   <int> <chr> <chr>
 1     1 cook  move 
 2     1 move  try  
 3     2 clean climb
 4     2 climb clean

内容的提问来源于stack exchange,提问作者Researchderp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:54:04