本文介绍了在R中融化数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在R中有一个数据框,格式如下

I have a dataframe in R in the format below

      name1    name2    name3
word1  1         0        1
word2  0         1        1
word3  1         1        0

我想融化这个数据框进入:

I would like to melt this dataframe into:

name1 |word1|word3
name2 |word2|word3
name3 |word1|word2


推荐答案

这是一个一线的基础解决方案:

Here's a one-liner, base solution:

out <- t(apply(mydf, 2, function(x) row.names(mydf)[which(as.logical(x))]))

结果是一个矩阵:

> out
      [,1]    [,2]
name1 "word1" "word3"
name2 "word2" "word3"
name3 "word1" "word2"

这很容易成为数据框:

> as.data.frame(out)
         V1    V2
name1 word1 word3
name2 word2 word3
name3 word1 word2

这是您读取的数据:

mydf <- read.table(text='      name1    name2    name3
word1  1         0        1
word2  0         1        1
word3  1         1        0', header=TRUE)

这篇关于在R中融化数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 05:47