R 从宽到长?

R 从宽到长?,r,tidyr,R,Tidyr,我正在尝试学习如何使用tidyr将宽数据转换为长数据。假设我的数据如下所示: df1 <- data.frame(V1=c(1.5,7.4), V2=c(6.7,8.8), sim=c(1,2)) df2 <- data.frame(sim=c(1,1,2,2), Value=c(1.5,6.7,7.4,8.8)) 错误为“错误:列规范无效” 谢谢 试试看 library

我正在尝试学习如何使用tidyr将宽数据转换为长数据。假设我的数据如下所示:

df1 <- data.frame(V1=c(1.5,7.4), 
                  V2=c(6.7,8.8),
                  sim=c(1,2))
df2 <- data.frame(sim=c(1,1,2,2),
                  Value=c(1.5,6.7,7.4,8.8))
错误为“错误:列规范无效”

谢谢

试试看

library(tidyr)
df1 %>%
    gather(sim1, Value, V1:V2) %>% 
    select(-sim1) %>%
    arrange(sim)
#    sim Value
#1   1   1.5
#2   1   6.7
#3   2   7.4
#4   2   8.8
根据
?收集

  gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)
键,值:要在输出中创建的键和值列的名称

…:要收集的列的规格。使用简单的变量名。 使用“x:z”选择x和z之间的所有变量,排除y 带“-y”。有关更多选项,请参阅选择文档

采集(df1,sim)[-2]
  gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)