动态调用data.frame和填充行

时间:2015-10-02 09:20:00

标签: r dataframe assign

我有以下问题:
我正在创建一个灵活数量的data.frames(或矩阵也可以完成这项工作),这些数据被填充到最后一个,这个数据不完整,因此应该区别对待。 我现在想要调用data.frame板n,然后想要用数据填充它。我想做点什么

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

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

incorrect number of dimensions

1 个答案:

答案 0 :(得分:0)

你做不到。见?assign

  

'assign'不会调度分配方法,因此不能        用于设置向量,名称,属性等元素

(如果您无法设置向量元素,则无法对数据帧执行此操作)。

创建数据框的列表可能更好,而不是手动标记plate1plate2等。例如,假设plates是{ {1}} list为第1板,plates[[1]]为第2板,等等:

plates[[2]]

在构建n <- length(plates) plates[[n]] # is the plateN dataframe plates[[n]][x, y] <- some_data 列表方面,它将取决于您的特定示例(此时您是如何做到的),但可能plates循环在此处有用,例如:< / p>

for

如果您有冒险精神,plates <- list() # supposing you know `n`, the number of plates for (i in 1:n) { plates[[i]] <- code_that_constructs_the_dataframe } 非常好,例如。

lapply

但是你似乎对R很陌生,或许现在最好坚持使用# 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 循环。