在r中将子集绑定到一列中

在r中将子集绑定到一列中,r,subset,cbind,R,Subset,Cbind,我已经创建了数据帧的子集,用于计算。现在,我只剩下一些子集,我想把它们合并成一列。子集如下所示: >E $`1` [1] “AAAaaa”“TTTaaa”“CCCaaa”“GGGaaa”“AAAttt”“TTTttt”“CCCttt”“gggtt” [9] “AAAccc”“TTTccc”“CCCccc”“GGGccc”“AAAggg”“TTTggg”“cccgg”“GGGggg” $`2` [1] “atata”“tatta”“CGCata”“GCGata”“BBBata”“ATAtat”“t

我已经创建了数据帧的子集,用于计算。现在,我只剩下一些子集,我想把它们合并成一列。子集如下所示:

>E
$`1`
[1] “AAAaaa”“TTTaaa”“CCCaaa”“GGGaaa”“AAAttt”“TTTttt”“CCCttt”“gggtt”
[9] “AAAccc”“TTTccc”“CCCccc”“GGGccc”“AAAggg”“TTTggg”“cccgg”“GGGggg”
$`2`
[1] “atata”“tatta”“CGCata”“GCGata”“BBBata”“ATAtat”“tatta”“CGCtat”
[9] “GCGtat”“BBBtat”“ATAcgc”“TATcgc”“cgcgc”“gcgc”“BBBcgc”“ATAgcg”
[17] “TATgcg”“CGCgcg”“GCGgcg”“BBBgcg”“ATAbbb”“TATbbb”“CGCbbb”“GCGbbb”
[25]“BBBbbb”
我试过:

A=vector()
cbind(A,ExonJunction,deparse.level=1)
A.
但这让我有了

E
1个字符,16
2个字符,25

我想要一列中的字符列表。如何执行此操作?

您可以
取消列出
列表
,并使用
数据创建一个单列数据框架。框架

dat <- data.frame(Col1=unlist(E, use.names=FALSE), stringsAsFactors=FALSE)

dat您可以
取消列表
列表
,并使用
data.frame

dat <- data.frame(Col1=unlist(E, use.names=FALSE), stringsAsFactors=FALSE)

dat还可以尝试
c
函数中的
recursive
参数,例如

c(E, recursive = TRUE, use.names = FALSE)
#  [1] "AAAaaa" "TTTaaa" "CCCaaa" "GGGaaa" "AAAttt" "TTTttt" "CCCttt" "GGGttt" "AAAccc" "TTTccc" "CCCccc" "GGGccc" "AAAggg" "TTTggg" "CCCggg" "GGGggg" "ATAata"
# [18] "TATata" "CGCata" "GCGata" "BBBata" "ATAtat" "TATtat" "CGCtat" "GCGtat" "BBBtat" "ATAcgc" "TATcgc" "CGCcgc" "GCGcgc" "BBBcgc" "ATAgcg" "TATgcg" "CGCgcg"
# [35] "GCGgcg" "BBBgcg" "ATAbbb" "TATbbb" "CGCbbb" "GCGbbb" "BBBbbb"
或者,如果希望将其作为数据帧中的列,可以尝试

df <- data.frame(Res = c(E, recursive = TRUE))

df还可以尝试
c
函数中的
recursive
参数,例如

c(E, recursive = TRUE, use.names = FALSE)
#  [1] "AAAaaa" "TTTaaa" "CCCaaa" "GGGaaa" "AAAttt" "TTTttt" "CCCttt" "GGGttt" "AAAccc" "TTTccc" "CCCccc" "GGGccc" "AAAggg" "TTTggg" "CCCggg" "GGGggg" "ATAata"
# [18] "TATata" "CGCata" "GCGata" "BBBata" "ATAtat" "TATtat" "CGCtat" "GCGtat" "BBBtat" "ATAcgc" "TATcgc" "CGCcgc" "GCGcgc" "BBBcgc" "ATAgcg" "TATgcg" "CGCgcg"
# [35] "GCGgcg" "BBBgcg" "ATAbbb" "TATbbb" "CGCbbb" "GCGbbb" "BBBbbb"
或者,如果希望将其作为数据帧中的列,可以尝试

df <- data.frame(Res = c(E, recursive = TRUE))

df您也可以像这样使用
stack
(前提是您正在处理一个命名列表,就像您这样):

一个很好的特性是名称变成“ind”列,因此这个过程很容易可逆

head(stack(E))
#   values ind
# 1 AAAaaa   1
# 2 TTTaaa   1
# 3 CCCaaa   1
# 4 GGGaaa   1
# 5 AAAttt   1
# 6 TTTttt   1
tail(stack(E))
#    values ind
# 36 BBBgcg   2
# 37 ATAbbb   2
# 38 TATbbb   2
# 39 CGCbbb   2
# 40 GCGbbb   2
# 41 BBBbbb   2

您也可以使用
堆栈
,如下所示(前提是您正在处理命名列表,如下所示):

一个很好的特性是名称变成“ind”列,因此这个过程很容易可逆

head(stack(E))
#   values ind
# 1 AAAaaa   1
# 2 TTTaaa   1
# 3 CCCaaa   1
# 4 GGGaaa   1
# 5 AAAttt   1
# 6 TTTttt   1
tail(stack(E))
#    values ind
# 36 BBBgcg   2
# 37 ATAbbb   2
# 38 TATbbb   2
# 39 CGCbbb   2
# 40 GCGbbb   2
# 41 BBBbbb   2

更多的
nchar
s,但只有一个函数:
c(E,recursive=TRUE,use.names=FALSE)
@AnandaMahto有趣的是,我不知道
c
use.names
功能,它在哪里有文档记录?稍微短一点的
do.call(c,c(E,use.names=FALSE))
,虽然我不确定速度differences@RichardScriven比什么短?:)您似乎在此处添加了一个不必要的函数。关于
use.names
,我想知道你是如何发现它的。还有,检查
Reduce(c,E)
以获得最小键入量更多
nchar
s,但只有一个函数:
c(E,recursive=TRUE,use.names=FALSE)
@AnandaMahto有趣的是,我不知道
c
use.names
功能,它记录在哪里?稍微短一点
do.call(c,c(E,use.names=FALSE))
,尽管我不确定速度differences@RichardScriven比什么短?:)您似乎在此处添加了一个不必要的函数。关于
use.names
,我想知道你是如何发现它的。为了减少输入,你还需要检查
Reduce(c,E)