我有一个描述一些位置的数据集。我根据分类预测变量 p 在某些位置聚合了一些响应度量 y。我得到这种类型的数据帧作为输出
location<-c('site1','site1','site1','site2','site2','site3','site3','site3','site3')
p<-c('A','B','C','A','B','A','B','C','D')
y<-c(1,2,3,1,2,1,2,3,4)
data.frame(location,p,y)
我想要的是一个看起来像这样的数据框
p<-c('A','B','C','D')
site1<-c(1,2,3,NA)
site2<-c(1,2,NA,NA)
site3<-c(1,2,3,4)
data.frame(p,site1,site2,site3)
在 R 中有一种简单的方法可以做到这一点吗?
最佳答案
df1 <- data.frame(location,p,y)
library(reshape2)
dcast(df1, p ~ location, value.var = "y")
## p site1 site2 site3
## 1 A 1 1 1
## 2 B 2 2 2
## 3 C 3 NA 3
## 4 D NA NA 4
关于将聚合函数的输出重新排列到新表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24317450/