在R中操作数据帧

在R中操作数据帧,r,dataframe,reshape,R,Dataframe,Reshape,我有一张这样的桌子: id pop fre A:1 sh 0.6 A:1 mi 0.2 A:2 sh 0.9 A:3 mi 0.5 我想要的是创建一个新表,其中第二列(pop)作为(id)列的列名和值,无需重复。(fre)列的相应值用于填写表格。例如,上表可能如下所示: id sh mi A:1 0.6 0.2 A:2 0.9 NA A:3 NA 0.5 我试图在R中使用重塑函数,但是我一直得到一个关于数据帧列的错误。我非常感谢任何可能有帮

我有一张这样的桌子:

id  pop  fre
A:1 sh   0.6
A:1 mi   0.2
A:2 sh   0.9
A:3 mi   0.5
我想要的是创建一个新表,其中第二列(pop)作为(id)列的列名和值,无需重复。(fre)列的相应值用于填写表格。例如,上表可能如下所示:

id    sh    mi
A:1   0.6  0.2
A:2   0.9  NA
A:3   NA   0.5

我试图在R中使用重塑函数,但是我一直得到一个关于数据帧列的错误。我非常感谢任何可能有帮助的想法。

您可以尝试
dcast

library(reshape2)
dcast(df1, id~pop, value.var='fre')

或者使用
base R
(基于所示示例)

或者使用
base R

 reshape(df1, idvar='id', timevar='pop', direction='wide')
数据
df1我发现acast而不是dcast完全适合我的目的。我感谢你的帮助。
 xtabs(fre~id+pop, df1)
 reshape(df1, idvar='id', timevar='pop', direction='wide')
df1 <- structure(list(id = c("A:1", "A:1", "A:2", "A:3"), pop = c("sh", 
"mi", "sh", "mi"), fre = c(0.6, 0.2, 0.9, 0.5)), .Names = c("id", 
"pop", "fre"), class = "data.frame", row.names = c(NA, -4L))

df1$pop <- factor(df1$pop, levels=unique(df1$pop))