我有大约 150 个矩阵,每个矩阵的名称都符合“BID_xxx”的约定(例如:BID_ABL、BID_BGA)。我想使用 substr 将每个矩阵的第一列分成两列。因此,例如:BID_ABL[,5] = substr(BID_ABL[,1],1,10)
任何人都可以帮助我找到一种方法,而无需将上述行写出 150 次,每个矩阵一次?
任何帮助都会很棒!
谢谢
麦克风
我有大约 150 个矩阵,每个矩阵的名称都符合“BID_xxx”的约定(例如:BID_ABL、BID_BGA)。我想使用 substr 将每个矩阵的第一列分成两列。因此,例如:BID_ABL[,5] = substr(BID_ABL[,1],1,10)
任何人都可以帮助我找到一种方法,而无需将上述行写出 150 次,每个矩阵一次?
任何帮助都会很棒!
谢谢
麦克风
功能get
和assign
你的朋友在这里:
for (n in ls()[grep("^BID_",ls())]) {
x <- get(n)
x[,5] <- substr(x[,1],1,10)
assign(n, x)
}
应该做你想做的。
像这样:
allnames<- ls(pat='BID_')
for(j in 1:length(allnames)) print(get(allnames[j])[1])
您将在哪里用您的子字符串函数替换“打印”。编辑:山姆的答案基本上是一样的。如何获取对象名称列表取决于您的环境中还有哪些其他内容。