【发布时间】:2014-02-07 12:08:22
【问题描述】:
一位 R 新手再次寻求帮助。
一般情况:我目前正在创建一个脚本,每个实验我有几个数据帧。 实验的测量时间步长和反应器数量不同,因此我需要 我的脚本的二维灵活性可以将数据“按摩”成所需测试的正确形状,并从多个数据帧中提取必要的数据。 不幸的是,我选择使用 for 循环来解决这个问题,我现在看到这在 R 中是不好的做法, 但我现在已经可以改变方向了。
问题:我试图实现一维矩阵由对象名称命名,在 for 循环内,我需要它们采用矩阵格式,因为我想应用更多功能。
# Simple but non- flexible examples of what I want to do:
# creates two matrix objects
a1 <- matrix(c(1,2,3,4,5))
a2 <- matrix(c(1,2,3,4,5))
#names header of the objects name
colnames(a1) <- "a1"
colnames(a2) <- "a2"
这可行,但我需要在 for 循环中使用它...
# here are the two flexible but non- working approaches of mine
# creates two matrix objects
a1 <- matrix(c(1,2,3,4,5))
a2 <- matrix(c(1,2,3,4,5))
# should name object according to progress in loop
for(i in 1:2)
{
assign(colnames(paste("a",i,sep="",collapse="")),do.call("c",list(paste("a",i,sep=""))))
}
这不是assign的正确使用,会产生错误。 第二次尝试不会产生错误但也不起作用,它会创建空对象
# creates two matrix objects
a1 <- matrix(c(1,2,3,4,5))
a2 <- matrix(c(1,2,3,4,5))
# should name object according to progress in loop
for(i in 1:2)
{
assign(paste("a",i,sep="", colapse=""),do.call("colnames",list(paste("a",i,sep="", colapse=""))))
}
我的结论:我不明白组合assign和colnames的正确方法, 如果有人建议我如何启动并运行它,那就太好了。
到目前为止,我搜索了:R 在 for 循环中结合了 assign 和 colnames,R 使用 assign 和 colnames,R 使用 for 循环命名数据,... 但不幸的是,我没能推断出我的问题的解决方案。
【问题讨论】: