简体   繁体   English

如何在R中使用重塑包中的Cast

[英]How to use cast in reshape package in r

Hi I have a data frame like this: 嗨,我有一个这样的数据框:

df <- data.frame(site = c('A','A','B','B','C','A','A'),
             state = c('O','F','O','F','O','O','F'),
             value = c(5,4,6,7,2,8,9))

It looks like this 看起来像这样

> df

site state value
   A     O     5
   A     F     4
   B     O     6
   B     F     7
   C     O     2
   A     O     8
   A     F     9

My target output should be 我的目标输出应该是

site  F O
   A  4 5
   B  7 6
   C NA 2
   A  9 8

Anyone know how to achieve this? 有人知道如何实现这一目标吗?

I think there should be something related to reshape2 in R 我认为应该与R中的reshape2有关

Thanks in advance 提前致谢

Try: 尝试:

df$id <- with(df, ave(1:nrow(df), site, state, FUN=seq_along))
library(reshape2)
dcast(df, site+id~state, value.var="value")[,-2]
#  site  F O
#1    A  4 5
#2    A  9 8
#3    B  7 6
#4    C NA 2

Or 要么

library(tidyr)
library(dplyr)
df %>%
spread(state, value) %>%
arrange(id) %>% 
select(-id)
#  site  F O
#1    A  4 5
#2    B  7 6
#3    C NA 2
#4    A  9 8

Or 要么

reshape(df,  idvar=c("site", "id"), timevar="state",direction="wide")[,-2]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM