拆分数据框列

时间:2016-09-26 12:59:53

标签: r dataframe split multiple-columns

我是生物信息学和R的新手。我有一个有三列的数据框,如下所示:

setregid()

现在名称列中的这些是基因ID,第五行中有4个基因ID。我想将它们分开,将它们作为具有相同X和Y的单独行添加到数据帧中。与第6行的情况相同。所以我希望输出像这样

                          name   X   Y
1                         4052 153 302
2                         7057  80 279
3                         8454 466 266
4                         9978 466 249
5          3397 3398 3399 3400 769 142
6                    1874 1875 723 325

1 个答案:

答案 0 :(得分:0)

使用包 tidyr separate_rows ,您有一个非常简单的解决方案:

复制数据:

class Describer {
    static getName(inputClass) {
        var funcNameRegex = /function (.{1,})\(/;
        var results = (funcNameRegex).exec((<any> inputClass).constructor.toString());
        return (results && results.length > 1) ? results[1] : "";
    }
}

class Example {
}

class AnotherClass extends Example {
}

var x = new Example();
var y = new AnotherClass();

alert(Describer.getName(x)); // Example
alert(Describer.getName(y)); // AnotherClass

结果:

data <- data.frame(name = c("4052", "7057","8454","9978","3397 3398 3399 3400","1874 1875"),
                   X = c(153,80,466,466,768,723),
                   Y = c(302,279,266,249,142,325), stringsAsFactors = FALSE)

现在神奇了:):

                 name   X   Y
1                4052 153 302
2                7057  80 279
3                8454 466 266
4                9978 466 249
5 3397 3398 3399 3400 768 142
6           1874 1875 723 325

结果:

    library(tidyr)

    separate_rows(data, name, convert = TRUE)