0

我有大约 150 个矩阵,每个矩阵的名称都符合“BID_xxx”的约定(例如:BID_ABL、BID_BGA)。我想使用 substr 将每个矩阵的第一列分成两列。因此,例如:BID_ABL[,5] = substr(BID_ABL[,1],1,10)

任何人都可以帮助我找到一种方法,而无需将上述行写出 150 次,每个矩阵一次?

任何帮助都会很棒!

谢谢

麦克风

4

2 回答 2

1

功能getassign你的朋友在这里:

for (n in ls()[grep("^BID_",ls())]) {
  x <- get(n)
  x[,5] <- substr(x[,1],1,10)
  assign(n, x)
}

应该做你想做的。

于 2013-11-06T15:28:20.437 回答
1

像这样:

allnames<- ls(pat='BID_')

for(j in 1:length(allnames))  print(get(allnames[j])[1])

您将在哪里用您的子字符串函数替换“打印”。编辑:山姆的答案基本上是一样的。如何获取对象名称列表取决于您的环境中还有哪些其他内容。

于 2013-11-06T15:28:38.513 回答