我正在尝试在 R 中编写一个循环,但我认为命名法不正确,因为它不会创建新对象,这是我正在尝试做的一个简化示例:
for i in (1:8) {
List_i <-List
colsToGrab_i <-grep(predefinedRegex_i, colnames(List_i$table))
List_i$table <- List_i$table[,predefinedRegex_i]
}
我创建了 'predefinedRegex'es 1:8,grep 应该使用它来搜索循环创建一个名为“List_i”的对象,然后找不到“predefinedRegex_i”。
我曾尝试在 i 前面加上 "i" 和 $ 引号,也 [i] 但这些不起作用。
非常感谢任何帮助。谢谢你。
#在下面使用@RyanGrammel 的答案::
#CREATING regular expressions for grabbing sets groups 1 -7 ::::
g_1 <- "DC*"
g_2 <- "BN_._X.*"
g_3 <- "BN_a*"
g_4 <- "BN_b*"
g_5 <- "BN_a_X.*"
g_6 <- "BN_b_X.*"
g_7 <- "BN_._Y.*"
for i in (1:8)
{
assign(x = paste("tableA_", i, sep=""), value = BigList$tableA)
assign(x = paste("Forgrep_", i, sep=""), value = colnames(get(x = paste("tableA_", i, sep=""))))
assign(x = paste("grab_", i, sep=""), value = grep((get(x = paste("g_",i, sep=""))), (get(x = paste("Forgrep_",i, sep="")))))
assign(x = paste("tableA_", i, sep=""), value = BigList$tableA[,get(x = paste("grab_",i, sep=""))])
}
对“BigList”中的每个表重复此循环。我发现我无法从 (get(x = paste("BigList_", i, "$tableA" sep="")))) 中提取列名
或 from (get(x = paste("BigList_", i, "[[2]]" sep="")))) 所以更容易先提取表格。我现在将编写一个循环来重新打包列表。