我是生物信息学和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
答案 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)