在R中操纵数据框

沃尔德·欧默(Waleed Omer)

我有一个看起来像这样的表:

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')

或者

library(tidyr)
spread(df1, pop, fre)

或使用base R(根据显示的示例)

 xtabs(fre~id+pop, df1)

reshapebase R

 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))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章