在聚合数据帧后,如何将rownames列表作为值?

前端之家收集整理的这篇文章主要介绍了在聚合数据帧后,如何将rownames列表作为值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个像这样的数据帧:
type    V1    V2
1    A    bla    bla
2    A    bla    bla
3    B    bloo    bla
4    B    bloo    bla
5    C    moo    bloo
6    C    moo    bloo

目前我融化/施法得到这个:

type    bla    bloo    moo
A    4    0    0
B    2    2    0
C    0    2    2

使用这些命令:

library(reshape)
melted <- melt(df,id='type')
count <- function(x) { 
  length(na.omit(x))
}
casted <- cast(melted,type~value,count)

然而,我想获得原始rownames的列表而不是计数/求和.像这样的东西:

type    bla    bloo    moo
A    1,2    0    0
B    3,4    3,4    0
C    0    5,6    5,6

其中bla,bloo和moo的每个值都是原始数据框中唯一的rownames列表.

有人可以帮忙吗?

library(reshape2)
df <- read.table(text="type    V1    V2
1    A    bla    bla
2    A    bla    bla
3    B    bloo    bla
4    B    bloo    bla
5    C    moo    bloo
6    C    moo    bloo")

df$id <- rownames(df)

melted <- melt(df,id=c('type','id'),measure.vars=c("V1","V2"))

fun <- function(x) paste(unique(x),collapse=",") 

dcast(melted,fun,value.var="id",fill="0")

#  type bla bloo moo
#1    A 1,2    0   0
#2    B 3,4  3,4   0
#3    C   0  5,6 5,6
原文链接:https://www.f2er.com/javaschema/281685.html

猜你在找的设计模式相关文章