我有大约150个矩阵,每个矩阵的名称都在“BID_xxx”的约定中(例如:BID_ABL,BID_BGA)。我想使用substr将每个矩阵的第一列拆分为两个。例如:BID_ABL[,5] = substr(BID_ABL[,1],1,10)
有没有人能够帮助我找到一种方法来做到这一点,而不是将上述行写出150次,每个矩阵一次?
任何帮助都会很棒!
由于
麦克
答案 0 :(得分:1)
函数get
和assign
是您的朋友:
for (n in ls()[grep("^BID_",ls())]) {
x <- get(n)
x[,5] <- substr(x[,1],1,10)
assign(n, x)
}
应该做你想做的事。
答案 1 :(得分:1)
像这样:
allnames<- ls(pat='BID_')
for(j in 1:length(allnames)) print(get(allnames[j])[1])
用你的子串函数替换“print”的地方。 编辑:山姆的答案基本相同。如何获取对象名称列表取决于您环境中的其他内容。