加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 20:07:41 所属栏目:百科 来源:网络整理
导读:我有一个像这样的数据帧: type V1 V21 A bla bla2 A bla bla3 B bloo bla4 B bloo bla5 C moo bloo6 C moo bloo 目前我融化/施法得到这个: type bla bloo mooA 4 0 0B 2 2 0C 0 2 2 使用这些命令: library(reshape)melted - melt(df,id='type')count - fu
我有一个像这样的数据帧:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读