如何在 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)
嗨,我有一个这样的数据框
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)