我有以下问题:
我正在创建一个灵活数量的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
答案 0 :(得分:0)
你做不到。见?assign
:
'assign'不会调度分配方法,因此不能 用于设置向量,名称,属性等元素
(如果您无法设置向量元素,则无法对数据帧执行此操作)。
创建数据框的列表可能更好,而不是手动标记plate1
,plate2
等。例如,假设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
循环。