如何在R中为重复项创建单个列
我有一张这样的表格(>200个读数,重复样本): 哪些代码可用于获取以下内容的输出:如何在R中为重复项创建单个列,r,R,我有一张这样的表格(>200个读数,重复样本): 哪些代码可用于获取以下内容的输出: **X** 1 4 2 5 3 6 7 10 8 11 9 12 假设数据集是一个矩阵(作为数据.帧不能有重复的行名),按行名拆分,并取消列表列表 data.frame(X=unlist(split(m1, row.names(m1)), use.names = FALSE)) # X #1 1
**X**
1
4
2
5
3
6
7
10
8
11
9
12
假设数据集是一个
矩阵
(作为数据.帧
不能有重复的行名),按行名拆分
,并取消列表
列表
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如果您拥有的(我们称之为data
)属于matrix
类,那么您可以使用以下函数:
X <- as.vector(t(data))
<代码> x假设您的数据集是一个数据帧,可以考虑使用<代码> DPLYR 和<代码> TiDyr 。请注意,数据框不能有重复的行名称,因此我假设如果记录是Site1
或Site2
,则会记录一个名为Site
的列
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
库(dplyr)
图书馆(tidyr)
#创建示例数据帧
dt%
安排(站点)%>%
选择(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
您可以执行data.frame(X=unlist(拆分(m1,row.names(m1)),use.names=FALSE))
顺序重要吗?您好。谢谢你的评论。然而,我得到的data.frame不是我想要的。我想有一个按顺序(每个网站)1,4,2,5,3等重复1列。。。。用你的代码我得到了1,2,3,4,。。我对这些东西还很幼稚。也许我遗漏了一些东西。@Victorp正如我在帖子中提到的,我使用的是一个例子,我假设它是一个矩阵
X <- as.vector(t(data))
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