如何在 R 中只有 1 行的数据帧上使用 dcast

how to use dcast on a dataframe that has only 1 row in R

嗨,我有一个这样的数据框

Start <- c("A")
End <- c("C")
Days <- c("Day1")

df2 <- data.frame(Start,End,Days)

我正在尝试使用 dcast

df2 <- dcast(df2,Days ~ End,value.var="Days")

但 returns 是

  Days    C
1 Day1 Day1

我想要的输出是计数

  Days    C
1 Day1    1

我在这里错过了什么?请就此提供一些意见。使用 dplyr 有更好的方法吗?

我们可以创建一个1的序列列,然后使用dcast

 dcast(transform(df2, i1=1), Days~End, value.var='i1')
#  Days C
#1 Day1 1

或者另一个选项是使用 fun.aggregate

dcast(df2, Days~End, length)
#  Days C
#1 Day1 1

正如 OP 提到的 dplyr,它涉及使用第一种方法,因为它没有 fun.aggregate

 library(dplyr)
 df2 %>%
    mutate(C=1) %>%
    select(Days:C)

您好,您的方向是正确的。投射数据框时,您需要的是拥有一个在投射期间应用于聚合的函数。

在这种情况下,您需要计算每个组出现的次数,因此您可以使用函数长度

dcast(df2,Days ~ End, length ) # or dcast(df, Days ~ End, table)