动态调用 data.frame 并填充行

dynamically call data.frame and fill rows

我有以下问题:
我正在创建一个灵活数量的 data.frames(或者矩阵也可以完成这项工作),直到最后一个都被填充,它还没有满,因此应该区别对待
我现在想调用 data.frame platen 并想在之后用数据填充它。我想做一些像

assign(paste0("plate", n)[x,y], %some data%)

其中 [x,y] 是 data.frame(/matrix) 中的位置,n 是第 n 个 data.frame 然而它总是给我

incorrect number of dimensions

你不能。见 ?assign:

‘assign’ does not dispatch assignment methods, so it cannot be used to set elements of vectors, names, attributes, etc.

(如果你不能设置向量的元素,你也不能为数据帧做)。

最好创建一个 list 数据框,而不是手动标记 plate1plate2 等。例如,假设 plates 是一个 list 这样 plates[[1]] 是板 1,plates[[2]] 是板 2,等等:

n <- length(plates)
plates[[n]] # is the plateN dataframe
plates[[n]][x, y] <- some_data

在构造 plates 列表方面,这将取决于您的特定示例(您目前是如何做的),但 for 循环可能会在这里有所帮助,例如:

plates <- list()
# supposing you know `n`, the number of plates
for (i in 1:n) {
    plates[[i]] <- code_that_constructs_the_dataframe
}

如果您喜欢冒险,lapply 非常好,例如

# suppose each plate was constructed by reading in a CSV
list_of_csvs <- list.files(pattern='*.csv')
plates <- lapply(list_of_csvs, read.csv)
# then plates[[1]] is the dataframe from the first csv, etc

但由于您似乎是 R 的新手,也许现在最好坚持使用 for 循环。