拆分数据框列
Splitting dataframe column
我是生物信息学和 R 的新手。我有一个包含三列的数据框,如下所示:
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
现在,在名称列中,这些是基因 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 3400 769 142
6 1875 723 325
7 3399 769 142
8 3398 769 142
9 3397 769 142
10 1874 723 325
使用包 tidyr separate_rows 你有一个非常简单的解决方案:
复制数据:
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)
结果:
X Y name
1 153 302 4052
2 80 279 7057
3 466 266 8454
4 466 249 9978
5 768 142 3397
6 768 142 3398
7 768 142 3399
8 768 142 3400
9 723 325 1874
10 723 325 1875
我是生物信息学和 R 的新手。我有一个包含三列的数据框,如下所示:
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
现在,在名称列中,这些是基因 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 3400 769 142
6 1875 723 325
7 3399 769 142
8 3398 769 142
9 3397 769 142
10 1874 723 325
使用包 tidyr separate_rows 你有一个非常简单的解决方案:
复制数据:
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)
结果:
X Y name
1 153 302 4052
2 80 279 7057
3 466 266 8454
4 466 249 9978
5 768 142 3397
6 768 142 3398
7 768 142 3399
8 768 142 3400
9 723 325 1874
10 723 325 1875