我有一个看起来像这样的表(> 200读数,重复样本):
**A B C**
Site1 1 2 3
Site1 4 5 6
Site2 7 8 9
Site2 10 11 12
可以使用哪些代码来输出:
**X**
1
4
2
5
3
6
7
10
8
11
9
12
答案 0 :(得分:2)
假设您的数据集是数据框,您可以考虑使用dplyr
和tidyr
。请注意,数据框不能有重复的行名,因此我假设如果记录为Site
或Site1
,则会记录一个名为Site2
的列。
library(dplyr)
library(tidyr)
# Create example data frame
dt <- read.table(text = "Site A B C
Site1 1 2 3
Site1 4 5 6
Site2 7 8 9
Site2 10 11 12",
header = TRUE, stringsAsFactors = FALSE)
dt
# Site A B C
# 1 Site1 1 2 3
# 2 Site1 4 5 6
# 3 Site2 7 8 9
# 4 Site2 10 11 12
dt2 <- dt %>%
gather(Col, X, -Site) %>%
arrange(Site) %>%
select(X)
dt2
# X
# 1 1
# 2 4
# 3 2
# 4 5
# 5 3
# 6 6
# 7 7
# 8 10
# 9 8
# 10 11
# 11 9
# 12 12
答案 1 :(得分:1)
假设数据集是matrix
(因为data.frame
不能有重复的行名称),rownames为split
而unlist
为list
data.frame(X=unlist(split(m1, row.names(m1)), use.names = FALSE))
# X
#1 1
#2 4
#3 2
#4 5
#5 3
#6 6
#7 7
#8 10
#9 8
#10 11
#11 9
#12 12
m1 <- structure(c(1L, 4L, 7L, 10L, 2L, 5L, 8L, 11L, 3L, 6L, 9L, 12L
), .Dim = c(4L, 3L), .Dimnames = list(c("Site1", "Site1", "Site2",
"Site2"), c("A", "B", "C")))
答案 2 :(得分:0)
如果您拥有的内容(我们称之为data
)属于matrix
类,那么您可以使用以下函数:
X <- as.vector(t(data))
如果是data.frame
将其转换为矩阵,因为我看到所有条目都是数字。