如何通过R中的for循环将两个系列的数组绑定到一个数据帧中
How to cbind two series of array in to one dataframe by for loop in R
我有两个数组系列,pan1,pqn2,pn30 和 read1,read2,read30,我想将它们绑定到一个数据帧中,列名如 pan1,read1,pan2,read2,pan30 ,通过R中的for循环读取30,我该怎么办?这是我的尝试,但不起作用
pan <- objects(pattern='^pan[0-9]+$')
read <- objects(pattern = '^read[0-9]+$')
for (i in 1:30) {
for (j in 1:30) {
if (i==j) {
panread <- cbind(pan[i],read[j])
}
}
}
一个基于 R 的解决方案:
生成 objects
名称的向量,观察模式 pan1、read1、...、pan30、read30
objects_to_bundle <- as.vector(matrix(c(objects(pattern = '^pan*'),
objects(pattern = '^read*')
),,2, byrow = TRUE
)
)
通过lapply
获取对象列表如下:
get
objects by object name,将其转换为命名的 structure
(列表)和 return 此列表 as.data.frame
(无论如何这是一个矩形列列表):
as.data.frame(structure(.Data = lapply(objects_to_bundle,
function(n) as.vector(get(n))
),
.Names = objects_to_bundle
)
)
我有两个数组系列,pan1,pqn2,pn30 和 read1,read2,read30,我想将它们绑定到一个数据帧中,列名如 pan1,read1,pan2,read2,pan30 ,通过R中的for循环读取30,我该怎么办?这是我的尝试,但不起作用
pan <- objects(pattern='^pan[0-9]+$')
read <- objects(pattern = '^read[0-9]+$')
for (i in 1:30) {
for (j in 1:30) {
if (i==j) {
panread <- cbind(pan[i],read[j])
}
}
}
一个基于 R 的解决方案:
生成 objects
名称的向量,观察模式 pan1、read1、...、pan30、read30
objects_to_bundle <- as.vector(matrix(c(objects(pattern = '^pan*'),
objects(pattern = '^read*')
),,2, byrow = TRUE
)
)
通过lapply
获取对象列表如下:
get
objects by object name,将其转换为命名的 structure
(列表)和 return 此列表 as.data.frame
(无论如何这是一个矩形列列表):
as.data.frame(structure(.Data = lapply(objects_to_bundle,
function(n) as.vector(get(n))
),
.Names = objects_to_bundle
)
)