【问题标题】:Convert some rows to columns in dataframe in R w/o spread [duplicate]将某些行转换为 R 中数据框中的列而无需展开 [重复]
【发布时间】:2021-12-30 11:37:44
【问题描述】:

我有以下虚拟数据框:

group <- c(rep("cat", 3),rep("dog", 3))
time <- c(rep(1:3,2))
mean <- c(78, 81, 83, 76, 83, 85)
  
df1 <- data.frame(group, time, mean)

我想将其转换为以下内容:

cat <- c(78, 81, 83)
dog <- c(76, 83, 85)
time <- c(1:3)

df2 <- data.frame(cat, dog, time)

我可以通过以下方式做到这一点:

df2 <- df1%>% spread(group, mean)

如何在不使用 tidyr 的传播的情况下实现这一目标?

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以使用xtabs:

    df1$group <- factor(df1$group)    
    xtabs(mean ~ time + group, df1)
    
    # time cat dog
    # 1  78  76
    # 2  81  83
    # 3  83  85
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2018-04-26
      • 2016-07-24
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多